Οδηγός Προγραμματισμού διαλόγου: Module Pool in SAP ABAP

⚡ Έξυπνη Σύνοψη

Προγραμματισμός διαλόγου σε SAP Το ABAP δημιουργεί προγράμματα συγκέντρωσης μονάδων (modules pool) που αλληλεπιδρούν με τον χρήστη μέσω οθονών και αλλάζουν τα περιεχόμενα της βάσης δεδομένων. Αυτή η σελίδα εξηγεί τους κωδικούς συναλλαγών, τις οθόνες, την κατάσταση του γραφικού περιβάλλοντος χρήστη (GUI), τη λογική ροής οθόνης, τα dynpros και τη δομή της συγκέντρωσης μονάδων.

  • 💬 Βασικός Ορισμός: Ένα πρόγραμμα διαλόγου χειρίζεται οποιαδήποτε αλληλεπίδραση του χρήστη, όπως την εισαγωγή δεδομένων, την επιλογή ενός στοιχείου μενού ή το κλικ σε ένα κουμπί, και μπορεί να ενημερώσει τη βάση δεδομένων.
  • 🅼 Τύπος προγράμματος: Τα προγράμματα διαλόγου είναι ομάδες μονάδων τύπου M, δεν μπορούν να εκτελεστούν μόνα τους και πρέπει να είναι συνδεδεμένα με τουλάχιστον έναν κωδικό συναλλαγής με μια αρχική οθόνη.
  • 🧩 Συστατικά: Ένας κωδικός συναλλαγής, οθόνες, μια κατάσταση GUI, η ομάδα μονάδων ABAP και η λογική ροής σχηματίζουν μαζί μία εφαρμογή διαλόγου.
  • 🔄 Λογική Ροής: Το PBO εκτελείται πριν εμφανιστεί η οθόνη, το PAI εκτελείται μετά από μια ενέργεια χρήστη, το POH απαντά F1 και το POV απαντά F4.
  • Dynpro: Μια οθόνη συν τη λογική ροής της είναι ένα dynpro και κάθε dynpro ελέγχει ακριβώς ένα βήμα του διαλόγου.
  • 📦 Συγκρότημα Ενοτήτων: Όλα τα dynpro που καλούνται σε μία συναλλαγή αναφέρονται σε μια κοινή ομάδα μονάδων που περιέχει τις ενότητες διαλόγου.
  • Διαδρομή Δημιουργίας: Το SE80 δημιουργεί την ομάδα μονάδων, το SE51 σχεδιάζει την οθόνη, το SE41 δημιουργεί την κατάσταση του γραφικού περιβάλλοντος χρήστη (GUI) και το SE93 συνδέει τον κώδικα συναλλαγής.

SAP Προγραμματισμός διαλόγου ABAP

Τι είναι ο Διαλογικός Προγραμματισμός;

SAP-Το ABAP υποστηρίζει δύο τύπους προγραμμάτων – Πρόγραμμα αναφοράς και Πρόγραμμα διαλόγου.

Εάν το πρόγραμμά σας ABAP απαιτεί είσοδο από τον χρήστη, χρησιμοποιείται ο προγραμματισμός διαλόγου.

Ένας διάλογος χρήστη είναι οποιαδήποτε μορφή αλληλεπίδρασης μεταξύ του χρήστη και του προγράμματος και θα μπορούσε να είναι οποιαδήποτε από τις ακόλουθες

  • Εισαγωγή δεδομένων
  • Επιλογή στοιχείου μενού
  • Κάνοντας κλικ σε ένα κουμπί
  • Κάνοντας κλικ ή διπλό κλικ σε μια καταχώριση

Το πρόγραμμα διαλόγου χρησιμοποιείται επίσης όταν χρειάζεται να πλοηγηθούμε εμπρός και πίσω μεταξύ των οθονών

Τα προγράμματα διαλόγου δημιουργούνται με τον τύπο «M» – Module Pool. Δεν μπορούν να εκτελεστούν ανεξάρτητα και πρέπει να επισυναφθούν σε τουλάχιστον έναν κωδικό συναλλαγής στον οποίο προσδιορίζετε μια αρχική οθόνη.

Διαφορά μεταξύ προγραμμάτων αναφοράς και διαλόγου

Διαφορά μεταξύ προγραμμάτων αναφοράς και διαλόγου

Πρόγραμμα αναφοράς:

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

Πρόγραμμα διαλόγου:

Ένα πρόγραμμα διαλόγου σάς επιτρέπει να εργάζεστε διαδραστικά με το σύστημα και να αλλάζετε τα περιεχόμενα των πινάκων της βάσης δεδομένων. Κάθε πρόγραμμα διαλόγου έχει μια συγκεκριμένη σειρά οθονών που επεξεργάζεται το σύστημα η μία μετά την άλλη.

Κριτήρια Πρόγραμμα Αναφορών Πρόγραμμα διαλόγου
Τύπος προγράμματος Τύπος 1, εκτελέσιμο Τύπος M, σύνολο μονάδων
Πρόσβαση στη βάση δεδομένων Διαβάζει και αναλύει δεδομένα Διαβάζει και τροποποιεί δεδομένα
Εκτέλεση Λειτουργεί μόνο του Εκτελείται μόνο μέσω κωδικού συναλλαγής
Έλεγχος Γεγονότα της έκθεσης Λογική ροής οθόνης κάθε dynpro

Η ακολουθία οθόνης μιας συναλλαγής διαλόγου είναι πιο εύκολο να παρακολουθηθεί με ένα παράδειγμα.

Ένα δείγμα επεξεργασίας συναλλαγών στον προγραμματισμό διαλόγου

Ένα δείγμα επεξεργασίας συναλλαγών

Το διάγραμμα ακολουθεί μια συναλλαγή από την πρώτη οθόνη έως την ενημέρωση της βάσης δεδομένων. Ο χρήστης εισάγει δεδομένα στην οθόνη 100, το PAI επικυρώνει την καταχώρηση και αποφασίζει για την επόμενη οθόνη, η οθόνη 200 συλλέγει τα υπόλοιπα δεδομένα και η εργασία ενημέρωσης τελικά γράφει την εγγραφή. Κάθε ένα από αυτά τα βήματα παράγεται από τα στοιχεία που αναφέρονται παρακάτω.

Στοιχεία του προγράμματος διαλόγου

Σε αντίθεση με αναφέρουν που γενικά συνεπάγεται τη δημιουργία ενός αυτόνομου προγράμματος που μπορεί να εκτελεστεί ανεξάρτητα από άλλα αντικείμενα, η ανάπτυξη προγράμματος διαλόγου συνεπάγεται την ανάπτυξη πολλαπλών αντικειμένων κανένα από τα οποία δεν μπορεί να εκτελεστεί μόνο του. Αντίθετα, όλα τα αντικείμενα συνδέονται ιεραρχικά με το κύριο πρόγραμμα και εκτελούνται με μια ακολουθία που υπαγορεύεται από το Κύριο Πρόγραμμα διαλόγου.

Τα στοιχεία ενός προγράμματος διαλόγου είναι:

Κωδικός συναλλαγής

  • Ο κωδικός συναλλαγής ξεκινά μια ακολουθία οθόνης.
  • Μπορείτε να δημιουργήσετε κωδικούς συναλλαγής στο πρόγραμμα περιήγησης αποθετηρίου στον πάγκο εργασίας ABAP ή χρησιμοποιώντας το Transaction SE93.
  • Ένας κωδικός συναλλαγής συνδέεται με ένα πρόγραμμα ABAP και μια αρχική οθόνη.
  • Μπορείτε να ξεκινήσετε μια ακολουθία οθόνης από οποιοδήποτε πρόγραμμα ABAP χρησιμοποιώντας τη δήλωση CALL SCREEN.

Οθόνες

  • Κάθε διάλογος σε ένα SAP το σύστημα ελέγχεται από μία ή περισσότερες οθόνες.
  • Δημιουργείτε οθόνες χρησιμοποιώντας την οθόνη Painter στον πάγκο εργασίας ABAP μέσω της συναλλαγής SE51
  • Κάθε οθόνη ανήκει σε ένα Πρόγραμμα ABAP.
  • Αυτές οι οθόνες αποτελούνται από μια «μάσκα οθόνης» ή «διάταξη» και τη λογική ροής της. Η οθόνη έχει μια διάταξη που καθορίζει τις θέσεις των πεδίων εισόδου/εξόδου και άλλων γραφικών στοιχείων, όπως πλαίσια ελέγχου και κουμπιά επιλογής. Μια λογική ροής καθορίζει τη λογική επεξεργασία εντός της οθόνης.

Κατάσταση GUI

  • Κάθε οθόνη έχει μια κατάσταση(ες) γραφικού περιβάλλοντος (GUI) που είναι ανεξάρτητα στοιχεία ενός προγράμματος.
  • Αυτό ελέγχει τις γραμμές μενού, την τυπική γραμμή εργαλείων, τη γραμμή εργαλείων εφαρμογής , με τις οποίες ο χρήστης μπορεί να επιλέξει λειτουργίες στην εφαρμογή.
  • Μπορείτε να τα δημιουργήσετε στον πάγκο εργασίας ABAP χρησιμοποιώντας το Μενού Painter.

Πρόγραμμα ABAP

  • Κάθε κατάσταση οθόνης και GUI στο σύστημα R/3 ανήκει σε ένα πρόγραμμα ABAP.
  • Το πρόγραμμα ABAP περιέχει τις ενότητες διαλόγου που καλούνται από τη λογική ροής οθόνης και επεξεργάζονται επίσης την είσοδο του χρήστη από την κατάσταση GUI.
  • Τα προγράμματα ABAP που χρησιμοποιούν οθόνες είναι επίσης γνωστά ως προγράμματα διαλόγου.
  • Σε μια ομάδα μονάδων (πρόγραμμα τύπου M). το πρώτο μπλοκ επεξεργασίας που καλείται είναι πάντα μια ενότητα διαλόγου. Ωστόσο, μπορείτε επίσης να χρησιμοποιήσετε οθόνες σε άλλα προγράμματα ABAP, όπως εκτελέσιμα προγράμματα ή λειτουργικές μονάδες. Το πρώτο μπλοκ επεξεργασίας ονομάζεται τότε διαφορετικά. για παράδειγμα, από το περιβάλλον χρόνου εκτέλεσης ή μια κλήση διαδικασίας. Στη συνέχεια, η ακολουθία οθόνης ξεκινά χρησιμοποιώντας τη δήλωση CALL SCREEN.

Λογική ροής οθόνης

Η λογική της ροής οθόνης χωρίζεται κυρίως σε τέσσερα στοιχεία.

  • Διαδικασία πριν από την έξοδο (Pbo) συμβάν: το οποίο υποβάλλεται σε επεξεργασία πριν εμφανιστεί η οθόνη
  • Διαδικασία μετά την εισαγωγή (PAI) συμβάν: το οποίο υποβάλλεται σε επεξεργασία μετά από μια ενέργεια χρήστη στην οθόνη
  • Διαδικασία κατόπιν αιτήματος βοήθειας (P.O.H.): το οποίο επεξεργάζεται όταν πατηθεί το F1
  • Διαδικασία κατόπιν αιτήματος αξίας (POV): το οποίο επεξεργάζεται όταν πατηθεί το F4

Οι POH και POV εξηγούνται λεπτομερώς στη σελίδα σχετικά με διαδικασία σε αίτημα αξίας και διαδικασία σε αίτημα βοήθειας.

Dynpro

  • Μια οθόνη μαζί με τη λογική ροής της ονομάζεται Dynpro («Δυναμικό Πρόγραμμα»), καθώς η λογική ροής της οθόνης επηρεάζει τη ροή του προγράμματος.
  • Κάθε dynpro ελέγχει ακριβώς ένα βήμα του προγράμματος διαλόγου σας.
  • Οι οθόνες που ανήκουν σε ένα πρόγραμμα είναι αριθμημέναΗ ακολουθία ροής οθόνης μπορεί να είναι είτε γραμμική είτε κυκλική. Μέσα από μια αλυσίδα οθονών, μπορείτε ακόμη και να καλέσετε μια άλλη αλυσίδα οθονών και, αφού την επεξεργαστείτε, να επιστρέψετε στην αρχική αλυσίδα. Μπορείτε επίσης να παρακάμψετε την στατικά καθορισμένη επόμενη οθόνη μέσα από τις ενότητες διαλόγου του προγράμματος ABAP.

ABAP Module Pool

  • Σε ένα συμβάν PBO ή PAI, ένα Dynpro καλεί ένα πρόγραμμα διαλόγου ABAP. Η συλλογή τέτοιων προγραμμάτων ονομάζεται ομάδα μονάδων ABAP.
  • Για παράδειγμα, οι λειτουργικές μονάδες που καλούνται στο συμβάν PAI χρησιμοποιούνται για τον έλεγχο της εισόδου του χρήστη και για την ενεργοποίηση κατάλληλων βημάτων διαλόγου, όπως η εργασία ενημέρωσης.
  • Όλοι οι dynpro να καλούνται από μέσα ένας η συναλλαγή αναφέρεται σε μια κοινή ομάδα μονάδων.

Δομή Προγράμματος Διαλόγου

Δομή Προγράμματος Διαλόγου

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

Ροή διαδικασίας για ένα πρόγραμμα διαλόγου

Ροή διαδικασίας για ένα πρόγραμμα διαλόγου

Το διάγραμμα ροής της διαδικασίας δείχνει την εναλλαγή μεταξύ της οθόνης και του προγράμματος ABAP: Το PBO συμπληρώνει τα πεδία της οθόνης, ο χρήστης ενεργεί και το PAI επεξεργάζεται την είσοδο πριν κληθεί η επόμενη οθόνη.

Πώς να δημιουργήσετε ένα πρόγραμμα συγκέντρωσης ενοτήτων

Τα παραπάνω στοιχεία δημιουργούνται με σταθερή σειρά. Τα παρακάτω βήματα δημιουργούν μια λειτουργική συναλλαγή από μια κενή ομάδα λειτουργικών μονάδων.

  1. Δημιουργήστε την ομάδα ενοτήτων: Στο SE80 ή στο SE38, δημιουργήστε ένα πρόγραμμα του οποίου το όνομα αρχίζει με SAPMZ και ορίστε τον τύπο προγράμματος σε M – Συγκρότημα ενοτήτωνΟ τύπος δεν μπορεί να αλλάξει αργότερα χωρίς να διαγραφεί το αντικείμενο.
  2. Δηλώστε τα παγκόσμια δεδομένα: Τοποθετήστε την πρόταση TABLES και τις καθολικές μεταβλητές στο TOP include, το οποίο μπορεί να διαβάσει κάθε ενότητα διαλόγου της ομάδας.
  3. Σχεδιάστε την οθόνη: Δημιουργήστε μια οθόνη 100 με την οθόνη Painter (SE51), τοποθετήστε τα πεδία εισαγωγής στη διάταξη και εισαγάγετε τον επόμενο αριθμό οθόνης στα χαρακτηριστικά οθόνης.
  4. Γράψτε τη λογική ροής: Στην καρτέλα Λογική ροής, καλέστε μία ενότητα για PBO και μία για PAI, όπως φαίνεται παρακάτω.
  5. Δημιουργήστε την κατάσταση του GUI: Δημιουργήστε μια κατάσταση με το Μενού Painter (SE41) και ορίστε το στη μονάδα PBO με την εντολή SET PF-STATUS, έτσι ώστε οι επιλογές Αποθήκευση, Πίσω και Έξοδος να φτάνουν στο πρόγραμμα ως κωδικοί λειτουργίας.
  6. Σύνδεση κωδικού συναλλαγής: Στο SE93, δημιουργήστε μια συναλλαγή διαλόγου, ονομάστε την ομάδα μονάδων και εισαγάγετε 100 ως αρχική οθόνη.
* Screen 100, flow logic
PROCESS BEFORE OUTPUT.
  MODULE status_0100.

PROCESS AFTER INPUT.
  MODULE user_command_0100.

* Module pool SAPMZDEMO
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_100'.
  SET TITLEBAR 'TITLE_100'.
ENDMODULE.

MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'SAVE'.
      PERFORM save_data.
    WHEN 'BACK' OR 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.

💡 Συμβουλές: ΑΦΗΣΗ ΣΤΗΝ ΟΘΟΝΗ 0 τερματίζει την τρέχουσα οθόνη και επιστρέφει στο σημείο κλήσης, ο οποίος είναι ο τυπικός τρόπος για να αποχωρήσετε από μια συναλλαγή διαλόγου χωρίς προβλήματα.

Συχνές Ερωτήσεις

Η εντολή CALL SCREEN ανοίγει μια νέα οθόνη και διατηρεί την οθόνη κλήσης στη στοίβα, επομένως η επεξεργασία επιστρέφει σε αυτήν. Η εντολή LEAVE TO SCREEN αντικαθιστά την τρέχουσα οθόνη και δεν επιστρέφει τίποτα στον καλούντα.

Μια ομάδα μονάδων με όνομα SAPΤο MZDEMO χωρίζεται σε MZDEMOTOP για τα καθολικά δεδομένα, MZDEMOO01 για τις μονάδες PBO, MZDEMOI01 για τις μονάδες PAI και MZDEMOF01 για τις υπορουτίνες. Ο πάγκος εργασίας τις δημιουργεί αυτόματα.

Δώστε στη συνάρτηση κουμπιού τον τύπο E στην κατάσταση GUI και καλέστε τη λειτουργική της μονάδα με MODULE exit AT EXIT-COMMAND. Στη συνέχεια, η λειτουργική μονάδα εκτελείται πριν από την επικύρωση του πεδίου, ώστε ο χρήστης να μπορεί να αφήσει μια οθόνη με μη έγκυρες καταχωρήσεις.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μέσα στα εργαλεία ανάπτυξης ABAP συντάσσουν τις ενότητες PBO και PAI, την πρόταση CASE στο SY-UCOMM και τις επικυρώσεις πεδίων από μια περιγραφή της οθόνης. Η ίδια η διάταξη εξακολουθεί να σχεδιάζεται στην οθόνη. Painter.

Οι Dynpros εξακολουθούν να τρέχουν κάθε κλασική σεζόν SAP Συναλλαγή GUI. Οι νέες διεπαφές χρήστη συνήθως κατασκευάζονται με Fiori και τα εργαλεία Τεχνητής Νοημοσύνης βοηθούν διαβάζοντας την υπάρχουσα λογική ροής και προτείνοντας έναν ισοδύναμο σχεδιασμό υπηρεσίας και εφαρμογής.

Συνοψίστε αυτήν την ανάρτηση με: