Τι είναι το RFC;
Το RFC είναι ένας μηχανισμός που επιτρέπει στις επιχειρηματικές εφαρμογές να επικοινωνούν και να ανταλλάσσουν πληροφορίες (σε προκαθορισμένες μορφές) με άλλα συστήματα. Το RFC σημαίνει «Απομακρυσμένη λειτουργία κλήσης»
Το RFC αποτελείται από δύο διεπαφές:
- Μια διεπαφή κλήσεων για προγράμματα ABAP
- Μια διεπαφή κλήσεων για προγράμματα εκτός SAP.
Οποιοδήποτε πρόγραμμα ABAP μπορεί να καλέσει μια απομακρυσμένη λειτουργία χρησιμοποιώντας τη δήλωση CALL FUNCTION… DESTINATION . Η παράμετρος DESTINATION λέει στο Σύστημα SAP ότι η συνάρτηση που καλείται εκτελείται σε ένα σύστημα διαφορετικό από τους καλούντες.Σύνταξη-
ΛΕΙΤΟΥΡΓΙΑ ΚΛΗΣΗΣ «απομακρυσμένη λειτουργία»ΠΡΟΟΡΙΣΜΟΣΕΞΑΓΩΓΗ f1 =ΕΙΣΑΓΩΓΗ f2 =ΠΙΝΑΚΕΣ t1 =ΕΞΑΙΡΕΣΕΙΣ
Οι Λογικοί Προορισμοί καθορίζονται μέσω της συναλλαγής SM59 και αποθηκεύονται στον Πίνακα Λειτουργίες RFCDES
της διεπαφής RFC
- Μετατροπή όλων των δεδομένων παραμέτρων στην αναπαράσταση που απαιτείται στο απομακρυσμένο σύστημα
- Κλήση των ρουτίνων επικοινωνίας που απαιτούνται για να μιλήσετε στο απομακρυσμένο σύστημα.
- Χειρισμός σφαλμάτων επικοινωνίας και ειδοποίηση του καλούντος, εάν είναι επιθυμητό (χρησιμοποιώντας την παράμετρο EXCEPTIONS του CALL FUNCTION).
Το RFC είναι ένα πρωτόκολλο SAP για τη διαχείριση επικοινωνιών μεταξύ συστημάτων για την απλοποίηση του σχετικού προγραμματισμού. Είναι η διαδικασία κλήσης μιας λειτουργικής μονάδας που βρίσκεται σε διαφορετικό μηχάνημα από το πρόγραμμα καλούντος. Τα RFC μπορούν να χρησιμοποιηθούν για την κλήση ενός διαφορετικού προγράμματος και στο ίδιο μηχάνημα, αλλά συνήθως χρησιμοποιείται όταν λειτουργούν μονάδες / προγράμματα «κλήσης» και «καλούμενων» σε ξεχωριστά μηχανήματα.
Στο SAP, το σύστημα διασύνδεσης RFC χρησιμοποιείται για τη ρύθμιση συνδέσεων RFC μεταξύ διαφορετικών συστημάτων SAP και επίσης μεταξύ ενός συστήματος SAP και ενός εξωτερικού (εκτός SAP).
Πρέπει να γνωρίζετε λεπτομέρειες σχετικά με το RFC
- Το SAP χρησιμοποιεί πρωτόκολλο CPIC (Κοινή διεπαφή προγραμματισμού για επικοινωνία) για τη μεταφορά δεδομένων μεταξύ συστημάτων. Είναι το πρωτόκολλο 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 stub) που απαιτείται για απομακρυσμένες κλήσεις.
- Διατηρείτε τις παραμέτρους για συνδέσεις RFC χρησιμοποιώντας τη συναλλαγή SM59. Το σύστημα R / 3 παρέχεται επίσης με ένα RFC-SDK (κιτ ανάπτυξης λογισμικού) που χρησιμοποιεί εκτεταμένες βιβλιοθήκες C για να επιτρέψει τη σύνδεση εξωτερικών προγραμμάτων στο σύστημα R / 3.
- Η μόνη διαφορά μεταξύ μιας απομακρυσμένης κλήσης μιας λειτουργικής μονάδας σε έναν άλλο διακομιστή και μιας τοπικής κλήσης είναι μια ειδική παράμετρος (προορισμός) που καθορίζει τον διακομιστή προορισμού στον οποίο πρόκειται να εκτελεστεί το πρόγραμμα.
Τα πλεονεκτήματα RFC:
Το RFC συμβάλλει στη μείωση των προσπαθειών των προγραμματιστών, αφήνοντάς τους να αποφύγουν την εκ νέου ανάπτυξη ενοτήτων και μεθόδων σε απομακρυσμένα συστήματα. Είναι αρκετά ικανό να:
- Μετατρέψτε τα δεδομένα σε μορφή κατανοητή από το απομακρυσμένο σύστημα (στόχος).
- Μετατρέψτε τα δεδομένα σε μορφή κατανοητή από το απομακρυσμένο σύστημα (στόχος).
- Καλέστε ορισμένες ρουτίνες που είναι απαραίτητες για την έναρξη της επικοινωνίας με το απομακρυσμένο σύστημα.
- Αντιμετωπίστε σφάλματα που ενδέχεται να προκύψουν κατά τη διαδικασία επικοινωνίας.
Τύποι RFC:
Σύγχρονος
Απαιτεί και τα δύο συστήματα (πελάτης και διακομιστής) να είναι διαθέσιμα κατά τη στιγμή της επικοινωνίας ή της μεταφοράς δεδομένων. Είναι ο πιο κοινός τύπος και απαιτείται όταν το αποτέλεσμα απαιτείται αμέσως μετά την εκτέλεση του sRFC.
Το sRFC είναι ένα μέσο επικοινωνίας μεταξύ συστημάτων όπου απαιτείται αναγνώριση. Οι πόροι του συστήματος προέλευσης περιμένουν στο σύστημα προορισμού και διασφαλίζουν ότι παραδίδουν το μήνυμα / δεδομένα με το ACKD. Τα δεδομένα είναι συνεπή και αξιόπιστα για επικοινωνία.
Το ζήτημα είναι εάν το σύστημα προορισμού δεν είναι διαθέσιμο, οι πόροι του συστήματος προέλευσης περιμένουν μέχρι να είναι διαθέσιμο το σύστημα προορισμού. Αυτό μπορεί να οδηγήσει στις Διαδικασίες του συστήματος πηγής να μεταβούν στη Λειτουργία ύπνου / RFC / CPIC σε συστήματα προορισμού και επομένως να αποκλείσει αυτούς τους πόρους.
Που χρησιμοποιείται για
- Για επικοινωνία μεταξύ συστημάτων
- Για επικοινωνία μεταξύ του SAP Web Application Server με το SAP GUI
Ασύγχρονη
Είναι επικοινωνία μεταξύ συστημάτων όπου δεν απαιτούνται επιβεβαιώσεις (είναι παρόμοιο με την παράδοση καρτ-ποστάλ). Δεν απαιτεί και τα δύο συστήματα να είναι διαθέσιμα κατά τη στιγμή της εκτέλεσης και το αποτέλεσμα δεν απαιτείται αμέσως να επιστραφεί πίσω στο σύστημα κλήσης .Ο πόρος του συστήματος πηγής δεν περιμένει το σύστημα προορισμού καθώς παραδίδει το μήνυμα / δεδομένα χωρίς να περιμένει καμία αναγνώριση. Δεν είναι αξιόπιστο για επικοινωνία, καθώς τα δεδομένα ενδέχεται να χαθούν εάν το σύστημα στόχου δεν είναι διαθέσιμο. Που χρησιμοποιείται για -
- Για επικοινωνία μεταξύ συστημάτων
- Για παράλληλη επεξεργασία
Συναλλακτική
Είναι μια ειδική μορφή aRFC. Το Transactional RFC διασφαλίζει τη διαχείριση των βημάτων επεξεργασίας που μοιάζουν με συναλλαγές που ήταν αρχικά αυτόνομα.Το Transactional RFC είναι μια ασύγχρονη μέθοδος επικοινωνίας που εκτελεί την καλούμενη λειτουργική μονάδα στον διακομιστή RFC μόνο μία φορά, ακόμα και αν τα δεδομένα αποστέλλονται πολλές φορές λόγω κάποιου προβλήματος δικτύου. Το απομακρυσμένο σύστημα δεν χρειάζεται να είναι διαθέσιμο τη στιγμή που το πρόγραμμα πελάτη RFC εκτελεί ένα tRFC. Το στοιχείο tRFC αποθηκεύει τη λεγόμενη συνάρτηση RFC, μαζί με τα αντίστοιχα δεδομένα, στη βάση δεδομένων SAP με ένα μοναδικό αναγνωριστικό συναλλαγής (TID). Το tRFC είναι παρόμοιο με το aRFC καθώς δεν περιμένει στο σύστημα προορισμού (Παρόμοιο με καταχωρημένη ανάρτηση). Εάν το σύστημα δεν είναι διαθέσιμο, θα γράψει τα δεδομένα σε πίνακες aRFC με αναγνωριστικό συναλλαγής (SM58) το οποίο επιλέγεται από τον προγραμματιστή RSARFCSE (το οποίο εκτελείται για κάθε 60 δευτερόλεπτα). Που χρησιμοποιείται για-
- Επέκταση ασύγχρονου RFC
- Για ασφαλή επικοινωνία μεταξύ συστημάτων
Σε ουρά
Η ουρά RFC είναι μια επέκταση του tRFC. Εξασφαλίζει επίσης ότι τα μεμονωμένα βήματα επεξεργάζονται διαδοχικά.Για να διασφαλιστεί ότι πολλά LUW (Λογική Μονάδα Εργασίας / Συναλλαγή) υποβάλλονται σε επεξεργασία με τη σειρά που καθορίζεται από την εφαρμογή. Το tRFC μπορεί να σειριοποιηθεί χρησιμοποιώντας ουρές (εισερχόμενες και εξερχόμενες ουρές). Εξ ου και το όνομα ουρά RFC (qRFC). Που χρησιμοποιείται για-
- Επέκταση του Transactional RFC
- Για μια καθορισμένη ακολουθία επεξεργασίας
- Συνιστάται η εφαρμογή του qRFC εάν θέλετε να διασφαλίσετε ότι πολλές συναλλαγές υποβάλλονται σε επεξεργασία με προκαθορισμένη σειρά.
Τύποι συνδέσεων RFC
Τύπος 3 - οι καταχωρήσεις καθορίζουν τη σύνδεση μεταξύ συστημάτων ABAP. Εδώ, πρέπει να καθορίσουμε το όνομα κεντρικού υπολογιστή / διεύθυνση IP. Μπορείτε, ωστόσο, να καθορίσετε πληροφορίες σύνδεσης, εάν θέλετε. Αυτό ισχύει και για τους δύο τύπους RFC, μεταξύ συστημάτων ABAP και εξωτερικών κλήσεων σε συστήματα ABAPΤύπος I - οι καταχωρήσεις καθορίζουν συστήματα ABAP συνδεδεμένα στην ίδια βάση δεδομένων με το τρέχον σύστημα. Αυτές οι εγγραφές είναι προκαθορισμένες και δεν μπορούν να τροποποιηθούν. Παράδειγμα ονόματος καταχώρησης: ws0015_K18_24
- ws0015 = όνομα κεντρικού υπολογιστή
- K18 = όνομα συστήματος (όνομα βάσης δεδομένων)
- 24 = Όνομα υπηρεσίας TCP
Τύπος T - προορισμοί είναι συνδέσεις με εξωτερικά προγράμματα που χρησιμοποιούν το RFC API για τη λήψη RFC. Ο τύπος ενεργοποίησης μπορεί να είναι είτε Έναρξη είτε Εγγραφή. Εάν είναι Έναρξη, πρέπει να καθορίσετε το όνομα κεντρικού υπολογιστή και το όνομα διαδρομής του προγράμματος που θα ξεκινήσει.
Πώς να κωδικοποιήσετε ένα RFC;
1. Στην καρτέλα χαρακτηριστικά λειτουργικής μονάδας (κωδικός συναλλαγής SE37), ορίστε τον τύπο επεξεργασίας ως λειτουργική μονάδα απομακρυσμένης λειτουργίας για να δημιουργήσετε μια λειτουργική μονάδα απομακρυσμένης λειτουργίας.
2. Γράψτε τον κωδικό για τη λειτουργική μονάδα.
3. Ορίστε τον προορισμό του διακομιστή RFC στο σύστημα πελάτη RFC που καλεί την απομακρυσμένη λειτουργία (μέσω συναλλαγής SM59).
4. Δήλωση παραμέτρων : Όλα τα πεδία παραμέτρων για μια μονάδα απομακρυσμένης λειτουργίας πρέπει να οριστούν ως πεδία αναφοράς, δηλαδή, όπως τα πεδία λεξικού ABAP.5. Εξαιρέσεις: Το σύστημα αυξάνει εσωτερικά το COMMUNICATION_FAILURE και το SYSTEM_FAILURE. Μπορείτε να αυξήσετε εξαιρέσεις σε μια απομακρυσμένη συνάρτηση όπως θα κάνατε σε μια τοπικά αποκαλούμενη συνάρτηση.
Αποσφαλμάτωση κλήσεων απομακρυσμένης λειτουργίας
- Δεν είναι δυνατή η αποσφαλμάτωση μιας κλήσης απομακρυσμένης λειτουργίας σε άλλο σύστημα.
- Ωστόσο, όταν δοκιμάζετε κλήσεις ABAP-to-ABAP RFC, μπορείτε να χρησιμοποιήσετε το πρόγραμμα εντοπισμού σφαλμάτων ABAP για να παρακολουθείτε την εκτέλεση της λειτουργίας RFC στο απομακρυσμένο σύστημα.
- Με απομακρυσμένες κλήσεις, το πρόγραμμα εντοπισμού σφαλμάτων ABAP (συμπεριλαμβανομένης της διεπαφής εντοπισμού σφαλμάτων) εκτελείται στο τοπικό σύστημα. Οι τιμές δεδομένων και άλλες πληροφορίες εκτέλεσης για την απομακρυσμένη λειτουργία μεταφέρονται από το απομακρυσμένο σύστημα.