Τι είναι το BADI; SAP ABAP;
⚡ Έξυπνη Σύνοψη
BADI στο SAP Το ABAP σημαίνει Business Add-In, μια αντικειμενοστρεφής βελτίωση που συνδέει προσαρμοσμένη λογική με τυπικό SAP λειτουργικότητα. Αυτή η σελίδα εξηγεί τι είναι ένα BADI, τα χαρακτηριστικά του, τους κλασικούς και τους νέους τύπους, τη ροή εργασίας SE18 και SE19 και πώς συγκρίνεται με τις εξόδους.

Τι είναι το BADI;
Το BADI σημαίνει Bελαστικότητα Add Ins. Όπως ακριβώς και οι Έξοδοι Πελατών, το BADI βοηθά στην προσάρτηση προσαρμοσμένων βελτιώσεων SAP λειτουργικότητα. Παράδειγμα BADI: Στη συναλλαγή CAT2 – Καταχώριση Φύλλου Χρόνου, το HR επιθυμεί να συμπεριλάβει μια διαδραστική επιβεβαίωση ότι η εν γνώσει της υποβολής εσφαλμένων δεδομένων αποτελεί λόγο απόρριψης. Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας το BADI
Η διαφορά από μια κλασική έξοδο είναι τεχνική. Ένα BADI βασίζεται σε αντικείμενα ABAP, επομένως το τυπικό πρόγραμμα καλεί μια μέθοδο διεπαφής και ο προσαρμοσμένος κώδικας βρίσκεται σε μια κλάση που υλοποιεί αυτήν τη μέθοδο. Αυτός είναι ο λόγος για τον οποίο ένα BADI περιγράφεται συχνά ως ο αντικειμενοστρεφής διάδοχος του έξοδος πελάτη.
Χαρακτηριστικά
- Τα BADI είναι Αντικειμενοστραφή
- Μπορούν να εφαρμοστούν πολλές φορές
- Δεν απαιτεί SAP Λογισμικό Αλλαγή Εγγραφής
- Καμία επίδραση στην έκδοση που αναβαθμίστηκε στη λειτουργία των BADI's
Αυτά τα τέσσερα χαρακτηριστικά εξηγούν γιατί SAP Συνιστά ένα BADI αντί για μια κλασική έξοδο. Επειδή η βελτίωση βρίσκεται σε ξεχωριστή κλάση, επιβιώνει από μια αναβάθμιση ανέπαφη και επειδή ένα BADI μπορεί να οριστεί ως πολλαπλή χρήση, πολλές ομάδες μπορούν να βελτιώσουν το ίδιο σημείο χωρίς να αντικαταστήσουν η μία την άλλη.
Τύποι BADI
SAP προσφέρει δύο γενιές Επιχειρηματικών Πρόσθετων. Το κλασικό BADI είναι η έκδοση που βασίζεται σε βελτιώσεις που περιγράφεται παραπάνω, και το νέο BADI, που παρουσιάστηκε με SAP Το NetWeaver είναι μέρος του Enhancement Framework και είναι ταχύτερο και πιο ευέλικτο.
| Κριτήρια | Κλασικό BADI | Νέο (πυρήνα) BADI |
|---|---|---|
| Διατηρείται σε | SE18 και SE19 | Το Εργαλείο Βελτίωσης μέσα σε ένα σημείο βελτίωσης |
| Φίλτρα | Απλές τιμές φίλτρου | Φιλτράρισμα συνδυασμών με λογικές παραστάσεις |
| Fallback | Δεν υπάρχουν διαθέσιμα στοιχεία | Μια προεπιλεγμένη κλάση εφεδρικής λειτουργίας εκτελείται όταν δεν υπάρχει ενεργή υλοποίηση |
| Instantiation | CL_EXITHANDLER=>GET_INSTANCE | Οι δηλώσεις GET BADI και CALL BADI |
| 💪 Βελτίωση της απόδοσης στην άσκηση | Πιο αργά, το αντικείμενο δημιουργούσε κάθε κλήση | Ταχύτερο, διαχειριζόμενο από τον πυρήνα |
Και οι δύο γενιές εντοπίζονται και υλοποιούνται με παρόμοιο τρόπο, ο οποίος περιγράφεται στη συνέχεια.
Πώς να ορίσετε και να εφαρμόσετε ένα BADI
Αυτό περιλάμβανε τρία βήματα
Βήμα 1) Δημιουργία ορισμού BADI και της διεπαφής του: Συναλλαγή SE18.
Βήμα 2) Δημιουργήστε την Υλοποίηση BADI: Συναλλαγή SE19
Βήμα 3) Ορίστε μια κλάση που υλοποιεί τη διεπαφή: Κατά τη δημιουργία της υλοποίησης, δημιουργείται επίσης μια κλάση για την υλοποίηση της διεπαφής της βελτίωσης.
Στον κώδικα, το τυπικό πρόγραμμα φτάνει στην υλοποίηση μέσω του χειριστή εξόδου. Το κλασικό μοτίβο δημιουργεί την αναφορά BADI και στη συνέχεια καλεί τη μέθοδο διεπαφής.
* Reference typed with the BADI interface DATA: lo_badi TYPE REF TO zif_ex_badi_demo. * Get the active implementation(s) CALL METHOD cl_exithandler=>get_instance CHANGING instance = lo_badi. * Call the interface method that carries the custom logic CALL METHOD lo_badi->check_data EXPORTING is_input = ls_input.
💡 Συμβουλές: Ένα νέο BADI πυρήνα καλείται πιο απλά με τις εντολές GET BADI και CALL BADI, οι οποίες επίσης χειρίζονται αυτόματα τις τιμές του φίλτρου. Χρησιμοποιήστε το SE18 για να ελέγξετε εάν το σημείο βελτίωσης είναι ένα κλασικό ή ένα νέο BADI πριν γράψετε την κλήση.
⚠️ Προειδοποίηση: Η συναλλαγή SE18 περιέχει τον ορισμό και τη διεπαφή, ενώ η SE19 περιέχει την υλοποίηση. Η δημιουργία της υλοποίησης στο SE18 ή του ορισμού στο SE19 είναι ένα συνηθισμένο λάθος που αφήνει το BADI ανενεργό.
BADI vs Έξοδος Πελάτη vs Έξοδος Χρήστη
Και οι τρεις τεχνικές βελτιώνουν το πρότυπο SAP, αλλά διαφέρουν ως προς την τεχνολογία και την ευελιξία. Ο παρακάτω πίνακας τοποθετεί το BADI δίπλα στα δύο παλαιότερα τεχνικές εξόδου.
| Κριτήρια | Έξοδος χρήστη | Έξοδος Πελάτη | BADI |
|---|---|---|---|
| Τεχνολογία | Υπορουτίνα (FORM) | Μονάδα λειτουργίας, οθόνη ή μενού | Αντικειμενοστρεφής διεπαφή και κλάση |
| Scope | Μόνο μονάδα SD | Όλες οι ενότητες | Όλες οι ενότητες |
| Αριθμός υλοποιήσεων | Ένας | Ένας | Πολλαπλή, όταν ορίζεται ως πολλαπλή χρήση |
| Διατηρείται με | Άμεση επεξεργασία του συμπεριλαμβανόμενου στοιχείου | SMOD και CMOD | SE18 και SE19 |
| Upgrade | Ελεγμένο με το SPAU | Ναι | Ναι |
Ο πρακτικός κανόνας είναι να χρησιμοποιείται ένα BADI όποτε υπάρχει, επειδή είναι αντικειμενοστρεφές, ασφαλές για αναβάθμιση και μπορεί να υλοποιηθεί περισσότερες από μία φορές.



