Κλήση απομακρυσμένης λειτουργίας (RFC) σε SAP Εκμάθηση
Τι είναι το RFC;
Το RFC είναι ένας μηχανισμός που επιτρέπει στις επιχειρηματικές εφαρμογές να επικοινωνούν και να ανταλλάσσουν πληροφορίες (σε προκαθορισμένες μορφές) με άλλα συστήματα. Το RFC σημαίνει «Κλήση απομακρυσμένης λειτουργίας»
Το RFC αποτελείται από δύο διεπαφές:
- Μια διεπαφή κλήσης για προγράμματα ABAP
- Μια διεπαφή κλήσης για μηSAP προγράμματα.
Κάθε Πρόγραμμα ABAP μπορεί να καλέσει μια απομακρυσμένη λειτουργία χρησιμοποιώντας το ΛΕΙΤΟΥΡΓΙΑ ΚΛΗΣΗΣ…ΠΡΟΟΡΙΣΜΟΣ δήλωση. ο ΠΡΟΟΡΙΣΜΟΣ παράμετρος λέει το SAP Σύστημα που η καλούμενη συνάρτηση εκτελείται σε σύστημα διαφορετικό από τους καλούντες.
Σύνταξη-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
Οι λογικοί προορισμοί ορίζονται μέσω συναλλαγής SM59 και αποθηκεύονται στον Πίνακα RFCDES
Λειτουργίες της διεπαφής RFC
- Μετατροπή όλων των δεδομένων παραμέτρων στην αναπαράσταση που απαιτείται στο απομακρυσμένο σύστημα
- Κλήση των ρουτινών επικοινωνίας που απαιτούνται για να μιλήσετε στο απομακρυσμένο σύστημα.
- Χειρισμός σφαλμάτων επικοινωνίας και ειδοποίηση του καλούντος, εάν το επιθυμείτε (χρησιμοποιώντας την παράμετρο EXCEPTIONS της ΛΕΙΤΟΥΡΓΙΑΣ ΚΛΗΣΗΣ).
Το RFC είναι α SAP πρωτόκολλο για τη διαχείριση των επικοινωνιών μεταξύ συστημάτων για την απλοποίηση του σχετικού προγραμματισμού. Είναι η διαδικασία κλήσης μιας λειτουργικής μονάδας που βρίσκεται σε διαφορετικό μηχάνημα από το πρόγραμμα καλούντος. Τα RFC μπορούν επίσης να χρησιμοποιηθούν για να καλέσουν ένα διαφορετικό πρόγραμμα στο ίδιο μηχάνημα, αλλά συνήθως, χρησιμοποιούνται όταν λειτουργούν λειτουργικές μονάδες/προγράμματα «κλήσεων» και «καλούμενων» εκτελούνται σε ξεχωριστά μηχανήματα.
In SAP, Το σύστημα RFC Interface χρησιμοποιείται για τη ρύθμιση συνδέσεων RFC μεταξύ διαφορετικών SAP συστήματα, και επίσης μεταξύ α SAP και ένα εξωτερικό (μηSAP) Σύστημα.
Πρέπει να γνωρίζετε λεπτομέρειες για το RFC
- SAP Χρησιμοποιεί το πρωτόκολλο CPIC (Common Programming Interface for Communication) για τη μεταφορά δεδομένων μεταξύ συστημάτων. Είναι SAP Συγκεκριμένο πρωτόκολλο. Το Remote Function Call (RFC) είναι μια διεπαφή επικοινωνίας που βασίζεται στο CPI-C, αλλά με περισσότερες λειτουργίες και ευκολότερη στη χρήση από τους προγραμματιστές εφαρμογών
- Οι λειτουργίες βιβλιοθήκης RFC υποστηρίζουν το Γλώσσα προγραμματισμού C και Visual Basic (ενεργό Windows πλατφόρμες)
- Οι συνδέσεις RFC μπορούν πάντα να χρησιμοποιηθούν σε ολόκληρο το σύστημα. Αυτό σημαίνει ότι μια σύνδεση RFC που έχετε ορίσει στον πελάτη 000 μπορεί επίσης να χρησιμοποιηθεί από τον πελάτη 100 (χωρίς καμία διαφορά).
- Το RFC είναι το πρωτόκολλο για την κλήση ειδικών υπορουτίνων (μονάδες λειτουργιών) μέσω του δικτύου. Οι λειτουργικές μονάδες είναι συγκρίσιμες με τις λειτουργίες C ή τις διαδικασίες PASCAL. Έχουν μια καθορισμένη διεπαφή μέσω της οποίας μπορούν να ανταλλάσσονται δεδομένα, πίνακες και κωδικοί επιστροφής. Η διαχείριση των λειτουργικών μονάδων γίνεται στο σύστημα R/3 στη δική τους βιβλιοθήκη λειτουργιών, που ονομάζεται Function Builder.
- Το Function Builder (συναλλαγή SE37) παρέχει στους προγραμματιστές εφαρμογών ένα χρήσιμο περιβάλλον για προγραμματισμό, τεκμηρίωση και Δοκιμές λειτουργικές μονάδες που μπορούν να κληθούν τόσο τοπικά όσο και απομακρυσμένα. Το σύστημα R/3 δημιουργεί αυτόματα τον πρόσθετο κωδικό (απόκομμα RFC) που απαιτείται για απομακρυσμένες κλήσεις.
- Διατηρείτε τις παραμέτρους για συνδέσεις RFC χρησιμοποιώντας τη συναλλαγή SM59. Το σύστημα R/3 παρέχεται επίσης με ένα RFC-SDK (Κιτ Ανάπτυξης Λογισμικού) που χρησιμοποιεί εκτεταμένες βιβλιοθήκες C για να επιτρέπει τη σύνδεση εξωτερικών προγραμμάτων στο σύστημα R/3.
- Η μόνη διαφορά μεταξύ μιας απομακρυσμένης κλήσης μιας λειτουργικής μονάδας σε άλλο διακομιστή και μιας τοπικής κλήσης είναι μια ειδική παράμετρος (προορισμός) που καθορίζει τον διακομιστή-στόχο στον οποίο θα εκτελεστεί το πρόγραμμα.
Τα πλεονεκτήματα του RFC
Το RFC βοηθά στη μείωση των προσπαθειών των προγραμματιστών, επιτρέποντάς τους να αποφύγουν την εκ νέου ανάπτυξη μονάδων και μεθόδων σε απομακρυσμένα συστήματα. Είναι αρκετά ικανό να:
- Μετατρέψτε τα δεδομένα σε μορφή κατανοητή από το απομακρυσμένο σύστημα (στόχος).
- Μετατρέψτε τα δεδομένα σε μορφή κατανοητή από το απομακρυσμένο σύστημα (στόχος).
- Καλέστε ορισμένες ρουτίνες που είναι απαραίτητες για την έναρξη επικοινωνίας με το απομακρυσμένο σύστημα.
- Χειριστείτε λάθη που ενδέχεται να προκύψουν κατά τη διαδικασία της επικοινωνίας.
Τύποι RFC
Syncχρόνιος
Απαιτεί και τα δύο συστήματα (πελάτης και διακομιστής) να είναι διαθέσιμα κατά τη στιγμή της επικοινωνίας ή της μεταφοράς δεδομένων. Είναι ο πιο κοινός τύπος και απαιτείται όταν το αποτέλεσμα απαιτείται αμέσως μετά την εκτέλεση του sRFC.
Το sRFC είναι ένα μέσο επικοινωνίας μεταξύ συστημάτων όπου απαιτούνται επιβεβαιώσεις. Οι πόροι του συστήματος προέλευσης περιμένουν στο σύστημα προορισμού και διασφαλίζουν ότι παραδίδουν το μήνυμα/δεδομένα με ACKD. Τα Δεδομένα είναι συνεπή και αξιόπιστα για επικοινωνία.
Το ζήτημα είναι εάν το σύστημα προορισμού δεν είναι διαθέσιμο, οι πόροι του συστήματος προέλευσης περιμένουν μέχρι να είναι διαθέσιμο το σύστημα προορισμού. Αυτό μπορεί να οδηγήσει στο σύστημα Processes of source να μεταβεί σε κατάσταση αναστολής λειτουργίας/RFC/CPIC στα συστήματα προορισμού και ως εκ τούτου να αποκλείσει αυτούς τους πόρους.
Που χρησιμοποιείται για
- Για επικοινωνία μεταξύ συστημάτων
- Για επικοινωνία μεταξύ SAP Διακομιστής εφαρμογών Ιστού σε SAP GUI
ασύγχρονη
Είναι επικοινωνία μεταξύ συστημάτων όπου δεν απαιτούνται επιβεβαιώσεις (είναι παρόμοια με την παράδοση καρτ ποστάλ). Δεν απαιτεί να είναι διαθέσιμα και τα δύο συστήματα τη στιγμή της εκτέλεσης και το αποτέλεσμα δεν απαιτείται να σταλεί αμέσως πίσω στο σύστημα κλήσης .
Ο πόρος του συστήματος προέλευσης δεν περιμένει για το σύστημα προορισμού καθώς παραδίδει το μήνυμα/δεδομένα χωρίς να περιμένει καμία επιβεβαίωση. Δεν είναι αξιόπιστο για επικοινωνία, καθώς τα δεδομένα ενδέχεται να χαθούν εάν το σύστημα προορισμού δεν είναι διαθέσιμο. Που χρησιμοποιείται για -
- Για επικοινωνία μεταξύ συστημάτων
- Για παράλληλη επεξεργασία
Συναλλαγές
Είναι μια ειδική μορφή aRFC. Το Transactional RFC διασφαλίζει χειρισμό σαν συναλλαγή στα βήματα επεξεργασίας που ήταν αρχικά αυτόνομα.
Το συναλλακτικό RFC είναι μια ασύγχρονη μέθοδος επικοινωνίας που εκτελεί την καλούμενη λειτουργική μονάδα στον διακομιστή RFC μόνο μία φορά, ακόμα κι αν τα δεδομένα αποστέλλονται πολλές φορές λόγω κάποιου προβλήματος δικτύου. Το απομακρυσμένο σύστημα δεν χρειάζεται να είναι διαθέσιμο τη στιγμή που το πρόγραμμα πελάτη RFC εκτελεί ένα tRFC. Το στοιχείο tRFC αποθηκεύει την καλούμενη συνάρτηση RFC, μαζί με τα αντίστοιχα δεδομένα, στο SAP βάση δεδομένων κάτω από ένα μοναδικό αναγνωριστικό συναλλαγής (TID). Το tRFC είναι παρόμοιο με το aRFC καθώς δεν περιμένει στο σύστημα προορισμού (Παρόμοιο με μια καταχωρημένη θέση). Εάν το σύστημα δεν είναι διαθέσιμο, θα γράψει τα Δεδομένα σε πίνακες aRFC με αναγνωριστικό συναλλαγής (SM58) που επιλέγεται από τον προγραμματιστή RSARFCSE (που εκτελείται για κάθε 60 δευτερόλεπτα). Που χρησιμοποιείται για-
- Επέκταση Asynchronous RFC
- Για ασφαλή επικοινωνία μεταξύ συστημάτων
Σε ουρά
Το RFC στην ουρά είναι μια επέκταση του tRFC. Εξασφαλίζει επίσης ότι τα μεμονωμένα βήματα υποβάλλονται σε επεξεργασία με τη σειρά. Για να διασφαλιστεί ότι πολλαπλάσια LUW (Λογική Μονάδα Εργασίας/ Συναλλαγής) υποβάλλονται σε επεξεργασία με τη σειρά που καθορίζεται από την εφαρμογή. Το tRFC μπορεί να σειριοποιηθεί χρησιμοποιώντας ουρές (εισερχόμενες και εξερχόμενες ουρές). Εξ ου και το όνομα σε ουρά RFC (qRFC). Που χρησιμοποιείται για-
- Επέκταση του Συναλλακτικού RFC
- Για μια καθορισμένη ακολουθία επεξεργασίας
- Η εφαρμογή του qRFC συνιστάται εάν θέλετε να εγγυηθείτε ότι πολλές συναλλαγές διεκπεραιώνονται με προκαθορισμένη σειρά.
Τύποι συνδέσεων RFC
Πληκτρολογήστε 3 – οι καταχωρήσεις καθορίζουν τη σύνδεση μεταξύ συστήματα ABAP. Εδώ, πρέπει να καθορίσουμε το όνομα του κεντρικού υπολογιστή / τη διεύθυνση IP. Μπορείτε, ωστόσο, να καθορίσετε πληροφορίες σύνδεσης εάν το επιθυμείτε. Αυτό ισχύει και για τους δύο τύπους RFC, μεταξύ συστημάτων ABAP και εξωτερικών κλήσεων προς συστήματα ABAP
Τύπος Ι - Οι καταχωρήσεις καθορίζουν συστήματα ABAP συνδεδεμένα στην ίδια βάση δεδομένων με το τρέχον σύστημα. Αυτές οι εγγραφές είναι προκαθορισμένες και δεν μπορούν να τροποποιηθούν. Παράδειγμα ονόματος καταχώρισης: ws0015_K18_24
- ws0015=όνομα κεντρικού υπολογιστή
- K18=όνομα συστήματος (όνομα βάσης δεδομένων)
- 24=Όνομα υπηρεσίας TCP
Πληκτρολογήστε Τ – οι προορισμοί είναι συνδέσεις με εξωτερικά προγράμματα που χρησιμοποιούν το RFC API για τη λήψη RFC. Ο τύπος ενεργοποίησης μπορεί να είναι είτε Έναρξη είτε Εγγραφή. Εάν είναι Έναρξη, πρέπει να καθορίσετε το όνομα κεντρικού υπολογιστή και το όνομα διαδρομής του προγράμματος που θα ξεκινήσει.
Πώς να κωδικοποιήσετε ένα RFC;
1) Στην καρτέλα χαρακτηριστικά λειτουργικής μονάδας (κωδικός συναλλαγής SE37), ορίστε τον τύπο επεξεργασίας ως μονάδα με δυνατότητα απομακρυσμένης λειτουργίας για να δημιουργήσετε μια μονάδα απομακρυσμένης λειτουργίας.
2) Γράψτε τον κωδικό για τη λειτουργική μονάδα.
3) Καθορίστε τον προορισμό του διακομιστή RFC στο σύστημα πελάτη RFC που καλεί την απομακρυσμένη λειτουργία (μέσω συναλλαγής SM59).
4) Δήλωση παραμέτρων: Όλα τα πεδία παραμέτρων για μια λειτουργική μονάδα απομακρυσμένης λειτουργίας πρέπει να ορίζονται ως πεδία αναφοράς, δηλαδή όπως πεδία Λεξικού ABAP.
5) Εξαιρέσεις: Το σύστημα αυξάνει εσωτερικά COMMUNICATION_FAILURE και SYSTEM_FAILURE. Μπορείτε να δημιουργήσετε εξαιρέσεις σε μια απομακρυσμένη συνάρτηση όπως θα κάνατε σε μια τοπικά καλούμενη συνάρτηση.
Εντοπισμός σφαλμάτων κλήσεων απομακρυσμένων λειτουργιών
- Είναι δεν είναι δυνατός ο εντοπισμός σφαλμάτων μια κλήση απομακρυσμένης λειτουργίας σε άλλο σύστημα.
- Ωστόσο, κατά τη δοκιμή κλήσεων RFC από ABAP σε ABAP, μπορείτε να χρησιμοποιήσετε το πρόγραμμα εντοπισμού σφαλμάτων ABAP για να παρακολουθήσετε την εκτέλεση της συνάρτησης RFC στο απομακρυσμένο σύστημα.
- Με τις απομακρυσμένες κλήσεις, το πρόγραμμα εντοπισμού σφαλμάτων ABAP (συμπεριλαμβανομένης της διεπαφής εντοπισμού σφαλμάτων) εκτελείται στο τοπικό σύστημα. Οι τιμές δεδομένων και άλλες πληροφορίες εκτέλεσης για την απομακρυσμένη λειτουργία μεταβιβάζονται από το απομακρυσμένο σύστημα.