Panggilan Fungsi Jarak Jauh (RFC) masuk SAP Tutorial ABAP
⚡ Ringkasan Cerdas
Remote Function Call (RFC) adalah SAP mekanisme komunikasi yang memungkinkan program ABAP memanggil modul fungsi yang berjalan di program lain. SAP atau sistem eksternal. Itu abstracts mengelola infrastruktur jaringan, mengkonversi format data, dan menampilkan kegagalan kembali ke pemanggil dengan rapi.
Apa itu RFC? SAP?
RFC singkatan Panggilan Fungsi Jarak JauhIni adalah mekanisme yang memungkinkan aplikasi bisnis untuk berkomunikasi dan bertukar informasi — dalam format yang telah ditentukan — dengan sistem lain. RFC adalah cara paling umum yang digunakan. SAP Sistem berkomunikasi dengan sistem lain, dan sistem ini juga berfungsi sebagai jembatan yang menghubungkan keduanya. SAP sistem ke non-SAP aplikasi.
RFC menawarkan dua antarmuka:
- Antarmuka panggilan untuk program ABAP.
- Antarmuka panggilan untuk non-SAP program.
Program ABAP apa pun dapat memanggil fungsi jarak jauh menggunakan FUNGSI PANGGILAN…TUJUAN penyataan. NS DESTINATION parameter memberitahu SAP sistem di mana fungsi yang dipanggil berjalan pada sistem yang berbeda dari sistem pemanggil.
Sintaksis
CALL FUNCTION 'remotefunction'
DESTINATION dest
EXPORTING f1 = ...
IMPORTING f2 = ...
TABLES t1 = ...
EXCEPTIONS ...
Tujuan logis ditentukan melalui transaksi. SM59 dan disimpan dalam tabel RFCDES.
Fungsi Antarmuka RFC
Runtime RFC bertanggung jawab atas tiga hal pada setiap panggilan:
- Mengonversi semua data parameter ke dalam representasi yang diharapkan oleh sistem jarak jauh.
- Memanggil rutinitas komunikasi diperlukan untuk berbicara dengan sistem jarak jauh.
- Menangani kesalahan komunikasi dan menampilkannya kepada penelepon melalui
EXCEPTIONSparameter dariCALL FUNCTION.
RFC adalah SAP Protokol yang menangani komunikasi antar sistem dan menyederhanakan pemrograman terkait. Ini adalah proses memanggil modul fungsi yang berada di mesin yang berbeda dari program pemanggil. Secara teknis, RFC dapat digunakan untuk memanggil modul fungsi pada sama Meskipun digunakan pada mesin yang berbeda, antarmuka RFC paling sering digunakan ketika program pemanggil dan program yang dipanggil berjalan pada mesin yang terpisah. Sistem antarmuka RFC digunakan untuk mengatur koneksi RFC antara mesin yang berbeda. SAP sistem, serta antara SAP dan eksternal (non-SAP) sistem.
Detail Penting yang Harus Anda Ketahui Tentang RFC
- SAP menggunakan BPK protokol (Common Programming Interface for Communication) untuk mentransfer data antar sistem. CPIC adalah SAPRFC adalah antarmuka komunikasi yang dibangun di atas CPI-C, tetapi dengan lebih banyak fungsi dan antarmuka yang lebih ramah bagi pemrogram aplikasi.
- Fungsi perpustakaan RFC mendukung bahasa pemrograman C dan Visual Basic pada Windows platform.
- Koneksi RFC berfungsi di seluruh sistem. Koneksi RFC yang didefinisikan di klien 000 juga dapat digunakan dari klien 100 tanpa perbedaan apa pun.
- RFC adalah protokol untuk memanggil subrutin khusus (modul fungsi) melalui jaringan. Modul fungsi dapat dibandingkan dengan fungsi C atau prosedur Pascal: modul fungsi mengekspos antarmuka yang telah ditentukan melalui mana data, tabel, dan kode pengembalian dipertukarkan. Modul fungsi dikelola di dalam RFC. SAP sistem di perpustakaan khusus, Pembuat Fungsi.
- Pembuat Fungsi (transaksi) SE37) memberikan lingkungan bagi pemrogram aplikasi untuk menulis, mendokumentasikan, dan pengujian modul fungsi yang dapat dipanggil secara lokal maupun jarak jauh. Sistem secara otomatis menghasilkan kode tambahan ( Cuplikan RFC) diperlukan untuk panggilan jarak jauh.
- Koneksi RFC dipelihara menggunakan transaksi. SM59. SAP juga mengirimkan sebuah RFC-SDK (Software Development Kit) yang menggunakan pustaka C yang ekstensif sehingga program eksternal dapat terhubung ke SAP sistem.
- Satu-satunya perbedaan antara panggilan jarak jauh ke server lain dan panggilan lokal adalah...
DESTINATIONparameter, yang menentukan server target tempat program harus dijalankan.
Keunggulan RFC
RFC mengurangi upaya pemrograman dengan menghilangkan kebutuhan untuk mengimplementasikan ulang modul dan metode di sisi jarak jauh. Lapisan RFC menangani hal-hal berikut:
- Mengonversi data ke dalam format yang dapat dipahami oleh sistem jarak jauh (target).
- Memanggil rutinitas yang dibutuhkan untuk membangun komunikasi dengan sistem jarak jauh.
- Menangani kesalahan yang muncul selama komunikasi.
- Menyediakan semantik transaksional yang andal ketika varian transaksional atau antrean digunakan.
Jenis RFC
SAP Mendukung empat varian RFC. Masing-masing menawarkan kompromi yang berbeda antara latensi, keandalan, dan jaminan urutan.
1. SyncRFC resmi (sRFC)
SyncRFC sinkron mengharuskan klien dan server tersedia pada saat panggilan. Ini adalah jenis yang paling umum dan digunakan setiap kali pemanggil membutuhkan hasilnya segera setelah eksekusi.
sRFC adalah sarana komunikasi antar sistem di mana pengakuan (acknowledgment) diharapkan. Sumber daya sistem sumber menunggu sistem target dan memastikan bahwa pesan tiba dengan ACK. Data yang dipertukarkan konsisten dan dapat diandalkan.
Kelemahannya adalah jika sistem target tidak tersedia, sumber daya sistem sumber akan menunggu hingga sistem target kembali aktif, yang dapat menyebabkan proses sistem sumber masuk ke mode Sleep/RFC/CPIC pada sistem target dan memblokir sumber daya.
Digunakan untuk:
- Komunikasi waktu nyata antar sistem.
- Komunikasi antara SAP Server Aplikasi Web dan SAP GUI.
2. RFC Asinkron (aRFC)
RFC asinkron adalah komunikasi antar sistem di mana tidak diperlukan pengakuan — mirip dengan penolakan.ping kartu pos di pos. Kedua sistem tidak perlu tersedia pada saat eksekusi, dan hasilnya tidak langsung dikembalikan ke sistem pemanggil.
Sumber daya sistem sumber tidak menunggu sistem target; ia mengirimkan data dan melanjutkan. Hal ini membuat aRFC cepat tetapi tidak dapat diandalkan dengan sendirinya — data dapat hilang jika sistem target tidak tersedia.
Digunakan untuk:
- Komunikasi sekali kirim dan lupakan antar sistem.
- Pemrosesan paralel lintas sistem.
3. RFC Transaksional (tRFC)
RFC transaksional adalah bentuk khusus dari RFC asinkron. RFC transaksional memastikan penanganan langkah-langkah pemrosesan yang seharusnya otonom, layaknya transaksi.
tRFC mengeksekusi modul fungsi yang dipanggil pada server RFC tepat satu kali, bahkan jika data dikirim beberapa kali karena masalah jaringan. Sistem jarak jauh tidak perlu tersedia pada saat klien RFC menjalankan panggilan. Komponen tRFC menyimpan fungsi yang dipanggil dan datanya di dalam SAP basis data di bawah yang unik ID Transaksi (TID)Jika sistem target tidak tersedia, data akan ditulis ke dalam tabel RFC (terlihat di transaksi). SM58) dan kemudian diambil oleh laporan penjadwal. RSARFCSEyang berjalan setiap 60 detik.
Digunakan untuk:
- Memperluas RFC asinkron dengan pengiriman paling banyak satu kali.
- Komunikasi yang andal antar sistem di mana eksekusi tepat satu kali sangat penting.
4. RFC Antrian (qRFC)
Queued RFC memperluas tRFC dengan menjamin bahwa setiap langkah diproses sesuai urutan yang ditentukan oleh aplikasi pemanggil. Untuk memastikan bahwa beberapa LUW (Logical Units of Work / transaksi) diproses sesuai urutan yang diinginkan, tRFC dapat diserialkan menggunakan antrian masuk dan keluar — dari sinilah nama "queued RFC" berasal.
Digunakan untuk:
- Memperluas RFC Transaksional dengan pengurutan yang ketat.
- Skenario di mana urutan pemrosesan yang telah ditentukan bersifat wajib.
- Kasus di mana beberapa transaksi harus diproses dalam urutan yang telah ditentukan sebelumnya.
Perbandingan Tipe RFC
| Tipe | Apakah penelepon menunggu? | Dapat diandalkan? | Sudah dipesan? | terbaik Untuk |
|---|---|---|---|---|
| sRFC | Ya | Ya | Tidak tersedia (panggilan tunggal) | Pencarian waktu nyata |
| RFC | Tidak | Tidak | Tidak | Kerja paralel, sekali tenggang lalu lupakan |
| tRFC | Tidak | Ya (tepat sekali) | Tidak | Pembaruan asinkron yang andal |
| qRFC | Tidak | Ya (tepat sekali) | Ya | Pembaruan yang diatur secara ketat |
Jenis Koneksi RFC
SM59 mendukung beberapa jenis koneksi. Tiga jenis koneksi yang paling sering Anda temui dirangkum di bawah ini.
Tipe 3 — ABAP-ke-ABAP
Entri Tipe 3 menentukan hubungan antara sistem ABAPNama host atau alamat IP wajib diisi; informasi login dapat diberikan secara opsional. Tipe 3 berlaku baik untuk RFC antar sistem ABAP maupun untuk panggilan eksternal ke sistem ABAP.
Tipe I — Rekan Sejawat Basis Data yang Sama
Entri Tipe I menentukan sistem ABAP yang berbagi basis data yang sama dengan sistem saat ini. Entri ini telah ditentukan sebelumnya dan tidak dapat dimodifikasi. Nama entri tipikal terlihat seperti ini: ws0015_K18_24:
- ws0015 — nama host
- K18 — nama sistem (basis data)
- 24 — Nama layanan TCP
Tipe T — Program Eksternal
Destinasi tipe T terhubung ke program eksternal yang menggunakan API RFC untuk menerima RFC. Tipe aktivasinya bisa berupa... Start or PendaftaranJika yang dipilih adalah Start, maka nama host dan path program yang akan dijalankan harus diberikan.
How to Code sebuah RFC
Proses pembuatan RFC dari awal hingga akhir terdiri dari lima langkah. Tiga langkah pertama adalah klik mekanis di SE37 dan SM59; dua langkah terakhir berkaitan dengan mendapatkan konfigurasi yang diinginkan.tracbenar.
Langkah 1: Pada tab atribut modul fungsi transaksi SE37, atur jenis pemrosesannya menjadi Modul yang Dapat Diakses dari Jarak Jauh untuk menandai modul fungsi sebagai mampu RFC.
Langkah 2: Tulis kode untuk modul fungsi di editor kode sumber.
Langkah 3: Tentukan tujuan server RFC di sistem klien RFC yang memanggil fungsi jarak jauh — dilakukan dalam transaksi. SM59.
Langkah 4 — Mendeklarasikan Parameter: Semua field parameter untuk modul fungsi jarak jauh harus didefinisikan sebagai field referensi — yaitu, bertipe sesuai dengan field Kamus ABAP. Parameter nilai tidak diizinkan untuk modul fungsi yang diaktifkan untuk akses jarak jauh.
Langkah 5 — Pengecualian: Sistem tersebut meningkatkan KEGAGALAN KOMUNIKASI ke KEGAGALAN SISTEM Secara internal, kesalahan ditangani pada tingkat transportasi. Pengecualian tingkat aplikasi dapat dimunculkan di dalam fungsi jarak jauh sama seperti di fungsi lokal.
Men-debug Panggilan Fungsi Jarak Jauh
- Hal ini tidak mungkin untuk di-debug Panggilan fungsi jarak jauh ke sistem non-ABAP dengan cara klasik — runtime eksternal bersifat buram.
- Namun, untuk panggilan RFC ABAP-ke-ABAP, debugger ABAP dapat digunakan untuk memantau eksekusi fungsi RFC di dalam sistem jarak jauh.
- Dengan panggilan jarak jauh, debugger ABAP (termasuk UI-nya) berjalan pada sistem lokal. Nilai data dan informasi runtime lainnya untuk fungsi jarak jauh dikirimkan kembali dari sistem jarak jauh.
kunci SAP Transaksi RFC
Inti dari perangkat kerja RFC sehari-hari adalah sejumlah kode transaksi (T-code) yang harus diketahui oleh setiap pengembang ABAP dan administrator Basis secara otomatis.
| kode-T | Tujuan |
|---|---|
| SM59 | Kelola tujuan RFC — host, login, tipe, keamanan. |
| SE37 | Function Builder — membuat atau mengedit modul fungsi yang diaktifkan dari jarak jauh. |
| SM58 | Pantau RFC transaksional yang gagal dan proses ulang. |
| SMQ1 / SMQ2 | Memantau antrian qRFC keluar (SMQ1) dan masuk (SMQ2). |
| STRUST | Kelola sertifikat SSL yang digunakan oleh tujuan RFC yang dilindungi HTTPS. |
| ST22 | Periksa dump singkat yang disebabkan oleh kegagalan panggilan jarak jauh. |
Praktik Terbaik untuk SAP RFC
Lapisan RFC yang dirancang dengan baik menjaga integrasi tetap cepat, mudah diamati, dan mudah dikembangkan. Kebiasaan-kebiasaan berikut layak diterapkan dalam setiap proyek.
- Pilih varian yang tepat untuk penipuan tersebut.tract. Gunakan sRFC untuk pencarian sinkron, tRFC untuk pembaruan asinkron paling banyak satu kali, dan qRFC ketika urutan menjadi penting.
- Gunakan kembali satu tujuan per sistem target. Alih-alih menyebarkan nama host ke banyak tujuan, hal ini mempermudah rotasi kredensial. tractabel.
- Jangan pernah memasukkan kredensial secara langsung ke dalam kode program. Dalam ABAP. Gunakan koneksi sistem tepercaya atau tiket masuk yang aman jika memungkinkan.
- Pantau SM58 dan SMQ2 secara rutin. Entri tRFC yang macet secara diam-diam menunda proses bisnis hingga diproses ulang.
- Hanya berikan parameter bertipe referensi. Parameter nilai dapat merusak modul fungsi yang diaktifkan dari jarak jauh.
- Gunakan STRUST untuk mengelola sertifikat TLS Untuk tujuan HTTPS — sertifikat yang kedaluwarsa adalah penyebab utama terjadinya dump COMMUNICATION_FAILURE yang misterius.








