Modularization στο ABAP: Macro, Subroutines & Function Modules

Όταν διαμορφώνετε τον πηγαίο κώδικα, τοποθετείτε μια ακολουθία δηλώσεων ABAP σε μια λειτουργική μονάδα. Στη συνέχεια, αντί να τοποθετήσετε όλες τις δηλώσεις στο κύριο πρόγραμμά σας, καλείτε απλώς τη λειτουργική μονάδα. Όταν δημιουργείται το πρόγραμμα, ο πηγαίος κώδικας στη μονάδα σπονδυλοποίησης αντιμετωπίζεται σαν να ήταν πραγματικά παρόν στο κύριο πρόγραμμα.

Ανάγκη Modularization

  • Βελτιώστε τη δομή του προγράμματος.
  • Εύκολο στην ανάγνωση του κώδικα
  • Εύκολη διατήρηση του κώδικα
  • Αποφύγετε τον πλεονασμό και promoεπαναχρησιμοποίηση του κώδικα

Διάφορες τεχνικές διαμορφώσεως

  • Χρήση Μακροεντολών
  • Χρήση αρχείων συμπερίληψης
  • Υπορουτίνες
  • Ενότητες λειτουργιών

Ας δούμε αναλυτικά το καθένα από αυτά:

Μακροεντολή SAP- ABAP

Εάν θέλετε να επαναχρησιμοποιήσετε το ίδιο σύνολο εντολών περισσότερες από μία φορές σε ένα πρόγραμμα, μπορείτε να τις συμπεριλάβετε σε μια μακροεντολή.

Μπορείτε να χρησιμοποιήσετε μια μακροεντολή μόνο μέσα στο πρόγραμμα στο οποίο έχει οριστεί και μπορεί να κληθεί μόνο σε γραμμές του προγράμματος following τον ορισμό του.

Οι μακροεντολές μπορούν να είναι χρήσιμες για μεγάλους υπολογισμούς ή complex ΓΡΑΨΤΕ δηλώσεις.

Σύνταξη

DEFINE <macro_name>

'Macro Statements

END-OF-DEFINITION

Οι μακροεντολές μπορούν να χρησιμοποιούν παραμέτρους &N όπου N = 1,2,3…

Παράδειγμα:-

DATA: number1 TYPE I VALUE 1.

DEFINE increment.

ADD 1 to &1.

WRITE &1.

END-OF-DEFINITION.

Increment number1.

WRITE number1.

Έξοδος: 2

Συμπεριλάβετε Προγράμματα

Συμπερίληψη Τα προγράμματα προορίζονται αποκλειστικά για τη διαμόρφωση πηγαίου κώδικα και δεν έχουν διεπαφή παραμέτρων.

Συμπερίληψη προγραμμάτων που σας επιτρέπουν να χρησιμοποιείτε τον ίδιο πηγαίο κώδικα σε διαφορετικά προγράμματα. Μπορούν να είναι χρήσιμα εάν έχετε μεγάλες δηλώσεις δεδομένων που θέλετε να χρησιμοποιήσετε σε διαφορετικά προγράμματα.

Σύνταξη

Include <include program Name>

Σημειώνει τη σημείωση

  • Συμπερίληψη προγραμμάτων δεν μπορούν να αυτοαποκαλούνται.
  • Τα προγράμματα Συμπερίληψης πρέπει να περιέχουν πλήρεις δηλώσεις.

Παράδειγμα:

INCLUDE ZILX0004.

WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM.

================================

PROGRAM ZRPM0001.

INCLUDE ZILX0004.

Υπορουτίνες

Οι υπορουτίνες είναι διαδικασίες που μπορείτε να ορίσετε σε οποιαδήποτε Πρόγραμμα ABAP και επίσης καλέστε από οποιοδήποτε πρόγραμμα. Οι υπορουτίνες καλούνται συνήθως εσωτερικά, δηλαδή περιέχουν τμήματα κώδικα ή algorithms που χρησιμοποιούνται συχνά τοπικά. Εάν θέλετε μια λειτουργία να μπορεί να επαναχρησιμοποιηθεί σε όλο το σύστημα, χρησιμοποιήστε μια λειτουργική μονάδα.

Σύνταξη-

FORM <Subroutine> [<pass>].

<Statement block>.

ENDFORM.

= Όνομα της υπορουτίνας

= Μεταβιβάζονται παράμετροι

Τύποι υπορουτίνων

  1. Εσωτερικός
    • Υπορουτίνα που ορίζεται στο ίδιο πρόγραμμα που καλείται.
    • Μπορεί να έχει πρόσβαση σε όλα τα αντικείμενα δεδομένων που έχουν δηλωθεί στο κύριο πρόγραμμα ABAP/4.
  2. Εξωτερικός
    • Υπορουτίνα που ορίζεται εκτός του προγράμματος που καλείται.
    • Ανάγκη χρήσης του επιλογή ή δήλωση αντικειμένων δεδομένων σε κοινά μέρη της μνήμης.

Κλήση υπορουτίνας

Εσωτερικές υπορουτίνες

PERFORM <subroutine> [<pass>]

= Όνομα της υπορουτίνας

= Μεταβιβάζονται παράμετροι

Τα δεδομένα που δηλώνονται στο κύριο πρόγραμμα είναι αυτόματα διαθέσιμα.

Εξωτερικές υπορουτίνες

PERFORM <subroutine>(<Program>) [<pass>].

PERFORM <subroutine> (<Program>) [<pass>] [IF FOUND].

PERFORM (<subroutine>) IN PROGRAM  (<Program>) [<pass>] [IF FOUND].

PERFORM <index> OF <subroutine1> <subroutine2> <subroutine3> [<pass>].

Σημειώνει τη σημείωση

  • Οι ένθετες κλήσεις επιτρέπονται σε υπορουτίνες (π.χ. ΕΚΤΕΛΕΣΗ σε μια ΦΟΡΜΑ … ENDFORM ).
  • Είναι επίσης δυνατές και επαναλαμβανόμενες κλήσεις.
  • Για να ορίσετε τοπικά δεδομένα, χρησιμοποιήστε τη δήλωση DATA μετά τη FORM . Κάθε φορά που μπαίνετε στην υπορουτίνα, τα δεδομένα αναδημιουργούνται (με μια αρχική τιμή) και απελευθερώνονται στο τέλος (από τη στοίβα).
  • Για να ορίσετε καθολικά δεδομένα που χρησιμοποιούνται σε μια υπορουτίνα, χρησιμοποιήστε την πρόταση LOCAL μετά τη FORM . Οι τιμές αποθηκεύονται όταν μπαίνετε στην υπορουτίνα και στη συνέχεια απελευθερώνονται στο τέλος (από τη στοίβα)

Ενότητες λειτουργιών

Οι λειτουργικές μονάδες είναι ρουτίνες ABAP/4 γενικής χρήσης που μπορεί να χρησιμοποιήσει ο καθένας. Στην πραγματικότητα, υπάρχει ένας μεγάλος αριθμός διαθέσιμων μονάδων τυπικής λειτουργίας.

Οι λειτουργικές μονάδες είναι οργανωμένες σε ομάδες συναρτήσεων: Συλλογές λογικά σχετικών συναρτήσεων. Μια λειτουργική μονάδα ανήκει πάντα σε μια ομάδα λειτουργιών.

Σύνταξη-

FUNCTION <function module>

<Statements>

ENDFUNCTION.

Σημαντικές πληροφορίες που σχετίζονται με τη λειτουργική μονάδα

  • Διαχείριση
  • Εισαγωγή/Αλλαγή/Εξαγωγή παραμέτρων.
  • Πίνακας Παράμετροι/Εξαιρέσεις.
  • Απόδειξη με έγγραφα
  • Πηγαίος κώδικας – L U01. είναι η Ομάδα Λειτουργιών
  • Παγκόσμια δεδομένα – L TOP .Συνολικά δεδομένα για την ομάδα λειτουργιών- Προσβάσιμα σε όλες τις μονάδες λειτουργιών στην ομάδα λειτουργιών.
  • Κύριο Πρόγραμμα – SAPL . Περιέχει τη λίστα με όλα τα αρχεία που περιλαμβάνονται για αυτήν την ομάδα λειτουργιών

Καλέστε μια λειτουργική μονάδα

Για να καλέσετε μια λειτουργική μονάδα, χρησιμοποιήστε τη δήλωση CALL FUNCTION:

CALL FUNCTION <module>

[EXPORTING  f1 = a 1.... f n = a n]

[IMPORTING  f1 = a 1.... f n = a n]

[CHANGING   f1 = a 1.... f n = a n]

[TABLES     f1 = a 1.... f n = a n]

[EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E]    

[OTHERS = ro]].

Ομάδες Λειτουργιών

Οι ομάδες συναρτήσεων είναι δοχεία για λειτουργικές μονάδες. Στην πραγματικότητα, υπάρχει ένας μεγάλος αριθμός τυπικών Ομάδων Συναρτήσεων.
Όλες οι λειτουργικές μονάδες μιας ομάδας λειτουργιών μπορούν να έχουν πρόσβαση στα καθολικά δεδομένα της ομάδας.

Όπως τα εκτελέσιμα προγράμματα (τύπου 1) και πισίνες μονάδων (τύπος M), οι ομάδες λειτουργιών μπορούν να περιέχουν οθόνες, οθόνες επιλογής και λίστες.

Σημειώνει τη σημείωση

  • Οι ομάδες συναρτήσεων δεν μπορούν να εκτελεστούν.
  • Το όνομα μιας ομάδας λειτουργιών μπορεί να έχει έως 26 χαρακτήρες.
  • Όταν δημιουργείτε μια ομάδα λειτουργιών ή μια λειτουργική μονάδα, το κύριο πρόγραμμα και τα προγράμματα που περιλαμβάνονται δημιουργούνται αυτόματα.
  • Οι ομάδες συναρτήσεων ενσωματώνουν δεδομένα.

Πώς να δημιουργήσετε μια ομάδα λειτουργιών

  1. Μετάβαση στη συναλλαγή SE80.
  2. Επιλέξτε Πρόγραμμα στο αναπτυσσόμενο μενού.
  3. Γράψτε το όνομα της Ομάδας Συναρτήσεων που θέλετε να δημιουργήσετε. Γενικά, οι ομάδες λειτουργιών από χρήστη ξεκινούν με "Z". π.χ - . Πατήστε Enter Key.
  4. Σημειώστε ότι το The TOP Include δημιουργείται από προεπιλογή εάν ο χρήστης ελέγξει την επιλογή δημιουργίας ενός TOP include.

Πώς να δημιουργήσετε μια λειτουργική μονάδα

  1. Δημιουργήστε μια ομάδα συναρτήσεων (πείτε "ZCAL").
  2. Δημιουργήστε μια λειτουργική μονάδα, ορίστε τα χαρακτηριστικά όπως (ομάδα συναρτήσεων, εφαρμογή, σύντομο κείμενο και τύπος διαδικασίας) και Αποθήκευση.
  3. Συμπεριλάβετε το αρχείο "LZCALU01" θα έχει τον πηγαίο κώδικα της πρώτης λειτουργικής μονάδας.
  4. Συμπεριλάβετε το αρχείο "LZCALTOP" θα έχει καθολικά δεδομένα.
  5. Το κύριο πρόγραμμα «SAPLZCAL» περιέχει
    • Καθολικά δεδομένα Συμπεριλάβετε το αρχείο "LZCALTOP"
    • Οι λειτουργικές μονάδες περιλαμβάνουν το αρχείο "LZCALUXX"
    • Ορισμένα από τον χρήστη Συμπεριλάβετε τα αρχεία "LZCALF..", "LZCALO.." και "LZCALI.."
  6. Ορισμός παραμέτρων διεπαφής και εξαιρέσεις
  7. Γράψτε τον πηγαίο κώδικα
  8. Ενεργοποίηση λειτουργικής μονάδας
  9. Δοκιμή της ενότητας λειτουργίας – Ενιαία δοκιμή και εντοπισμός σφαλμάτων
  10. Τεκμηρίωση και απελευθέρωση μιας λειτουργικής μονάδας

Αυτό είναι όλο για Modularity στο ABAP.