Apa itu RFC?
RFC adalah mekanisme yang memungkinkan aplikasi bisnis untuk berkomunikasi dan bertukar informasi (dalam format yang ditentukan sebelumnya) dengan sistem lain. RFC adalah singkatan dari 'Remote Function Call'
RFC terdiri dari dua antarmuka:
- Antarmuka panggilan untuk Program ABAP
- Antarmuka panggilan untuk program Non-SAP.
Semua program ABAP dapat memanggil fungsi jarak jauh menggunakan pernyataan CALL FUNCTION… DESTINATION . The DESTINATION parameter menceritakan SAP Sistem yang disebut fungsi berjalan dalam sistem selain penelepon.Sintaksis-
PANGGILAN FUNGSI 'fungsi jarak jauh'TUJUAN TUJUANMENGEKSPOR f1 =MENGIMPOR f2 =TABEL t1 =PENGECUALIAN
Tujuan Logis ditentukan melalui transaksi SM59 dan disimpan dalam Tabel Fungsi RFCDES
antarmuka RFC
- Mengonversi semua data parameter ke representasi yang diperlukan di sistem jarak jauh
- Memanggil rutinitas komunikasi yang diperlukan untuk berbicara dengan sistem jarak jauh.
- Menangani kesalahan komunikasi, dan memberi tahu penelepon, jika diinginkan (menggunakan parameter EXCEPTIONS dari FUNGSI PANGGILAN).
RFC adalah protokol SAP untuk menangani komunikasi antar sistem untuk menyederhanakan pemrograman terkait. Ini adalah proses memanggil modul fungsi yang berada pada mesin yang berbeda dari program pemanggil. RFC dapat digunakan untuk memanggil program yang berbeda pada mesin yang sama juga, tetapi biasanya, RFC digunakan ketika 'memanggil' dan 'memanggil' modul / program fungsi berjalan pada mesin yang terpisah.
Dalam SAP, sistem Antarmuka RFC digunakan untuk mengatur koneksi RFC antara sistem SAP yang berbeda, dan juga antara SAP dan sistem eksternal (non-SAP).
Harus Tahu Detail Tentang RFC
- SAP Menggunakan Protokol CPIC (Common Programming Interface for Communication) untuk mentransfer data antar Sistem. Ini adalah protokol Khusus SAP. Remote Function Call (RFC) adalah antarmuka komunikasi berbasis CPI-C, tetapi dengan lebih banyak fungsi dan lebih mudah digunakan oleh pemrogram aplikasi
- Fungsi perpustakaan RFC mendukung bahasa pemrograman C dan Visual Basic (pada platform Windows)
- Koneksi RFC selalu dapat digunakan di seluruh sistem. Ini berarti bahwa koneksi RFC yang telah Anda tetapkan 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 sebanding dengan fungsi C atau prosedur PASCAL. Mereka memiliki antarmuka yang ditentukan melalui data, tabel, dan kode pengembalian dapat dipertukarkan. Modul fungsi dikelola di Sistem R / 3 di pustaka fungsinya sendiri, yang disebut Pembangun Fungsi.
- Function Builder (transaksi SE37) menyediakan programmer aplikasi lingkungan yang berguna untuk pemrograman, pendokumentasian dan pengujian modul fungsi yang dapat dipanggil secara lokal maupun dari jarak jauh. Sistem R / 3 secara otomatis menghasilkan kode tambahan (rintisan RFC) yang diperlukan untuk panggilan jarak jauh.
- Anda mempertahankan parameter untuk koneksi RFC menggunakan transaksi SM59. Sistem R / 3 juga dilengkapi dengan RFC-SDK (Software Development Kit) yang menggunakan pustaka C ekstensif untuk memungkinkan program eksternal dihubungkan ke Sistem R / 3.
- Satu-satunya perbedaan antara panggilan jarak jauh modul fungsi ke server lain dan panggilan lokal adalah parameter khusus (tujuan) yang menentukan server target tempat program akan dijalankan.
Keuntungan RFC:
RFC membantu mengurangi upaya pemrogram, dengan membiarkan mereka menghindari pengembangan ulang modul dan metode pada sistem jarak jauh. Itu cukup mampu untuk:
- Ubah data ke dalam format yang dapat dimengerti oleh sistem jarak jauh (target).
- Ubah data ke dalam format yang dapat dimengerti oleh sistem jarak jauh (target).
- Panggil rutinitas tertentu yang diperlukan untuk memulai komunikasi dengan sistem jarak jauh.
- Tangani kesalahan yang mungkin terjadi dalam proses komunikasi.
Jenis RFC:
Sinkronis
Membutuhkan kedua sistem (klien dan server) untuk tersedia pada saat komunikasi atau transfer data. Ini adalah jenis yang paling umum dan diperlukan jika hasilnya diperlukan segera setelah eksekusi sRFC.
sRFC adalah sarana komunikasi antar sistem di mana pengakuan diperlukan. Sumber daya Sistem Sumber menunggu sistem target dan memastikan bahwa mereka mengirimkan pesan / data dengan ACKD. Data konsisten dan dapat diandalkan untuk komunikasi.
Masalahnya adalah jika sistem target tidak tersedia, sumber daya sistem sumber menunggu hingga sistem target tersedia. Hal ini dapat menyebabkan Proses sistem sumber masuk ke Mode Tidur / RFC / CPIC pada sistem target dan karenanya memblokir sumber daya ini.
Digunakan untuk
- Untuk komunikasi antar sistem
- Untuk komunikasi antara SAP Web Application Server ke SAP GUI
Asinkron
Ini adalah komunikasi antar sistem di mana ucapan terima kasih tidak diperlukan (ini mirip dengan pengiriman kartu pos). Ini tidak mengharuskan kedua sistem tersedia pada saat eksekusi dan hasilnya tidak segera diperlukan untuk dikirim kembali ke sistem panggilan .Sumber daya Sistem Sumber tidak menunggu sistem target karena mereka mengirimkan pesan / data tanpa menunggu pengakuan apa pun. Itu tidak dapat diandalkan untuk komunikasi karena data mungkin hilang jika sistem target tidak tersedia. Digunakan untuk -
- Untuk komunikasi antar sistem
- Untuk pemrosesan paralel
Transaksional
Ini adalah bentuk khusus aRFC. RFC transaksional memastikan penanganan langkah-langkah pemrosesan seperti transaksi yang awalnya otonom.Transactional RFC adalah metode komunikasi asinkron yang menjalankan modul fungsi yang dipanggil di server RFC hanya sekali, meskipun data dikirim beberapa kali karena beberapa masalah jaringan. Sistem jarak jauh tidak perlu tersedia pada saat program klien RFC menjalankan tRFC. Komponen tRFC menyimpan fungsi RFC yang disebut, bersama dengan data yang sesuai, dalam database SAP di bawah ID transaksi unik (TID). tRFC mirip dengan aRFC karena tidak menunggu di sistem target (Mirip dengan kiriman terdaftar). Jika sistem tidak tersedia, ia akan menulis Data ke Tabel aRFC dengan ID transaksi (SM58) yang dipilih oleh penjadwal RSARFCSE (yang berjalan setiap 60 detik). Digunakan untuk-
- Perpanjangan Asynchronous RFC
- Untuk komunikasi yang aman antar sistem
Dalam antrean
Antrian RFC adalah perpanjangan dari tRFC. Ini juga memastikan bahwa langkah-langkah individu diproses secara berurutan.Untuk menjamin bahwa beberapa LUW (Logical Unit of Work / Transaction) diproses dalam urutan yang ditentukan oleh aplikasi. tRFC dapat diserialkan menggunakan antrian (antrian masuk dan keluar). Karenanya nama antrian RFC (qRFC). Digunakan untuk-
- Perpanjangan RFC Transaksional
- Untuk urutan pemrosesan yang ditentukan
- Penerapan qRFC disarankan jika Anda ingin menjamin bahwa beberapa transaksi diproses dalam urutan yang telah ditentukan sebelumnya.
Jenis Koneksi RFC
Tipe 3 - entri menentukan hubungan antara sistem ABAP. Di sini, kita harus menentukan nama host / alamat IP. Namun, Anda dapat menentukan informasi logon jika diinginkan. Ini berlaku untuk kedua jenis RFC, antara sistem ABAP dan panggilan eksternal ke sistem ABAPJenis I - entri menentukan sistem ABAP yang terhubung ke database yang sama dengan sistem saat ini. Entri ini telah ditentukan sebelumnya dan tidak dapat diubah. Contoh nama entri: ws0015_K18_24
- ws0015 = nama host
- K18 = nama sistem (nama database)
- 24 = Nama layanan TCP
Tipe T - tujuan adalah koneksi ke program eksternal yang menggunakan RFC API untuk menerima RFC. Jenis aktivasi dapat berupa Mulai atau Registrasi. Jika Start, Anda harus menentukan nama host dan nama jalur program yang akan dimulai.
Bagaimana cara membuat kode RFC?
1. Di tab atribut modul fungsi (kode transaksi SE37), setel jenis pemrosesan sebagai modul yang diaktifkan jarak jauh untuk membuat modul fungsi jarak jauh.
2. Tulis kode untuk modul fungsi.
3. Tentukan tujuan server RFC di sistem klien RFC yang memanggil fungsi jarak jauh (melalui transaksi SM59).
4. Mendeklarasikan Parameter : Semua bidang parameter untuk modul fungsi jarak jauh harus ditetapkan sebagai bidang referensi, yaitu, seperti bidang Kamus ABAP.5. Pengecualian: Sistem memunculkan COMMUNICATION_FAILURE dan SYSTEM_FAILURE secara internal. Anda bisa memunculkan pengecualian dalam fungsi jarak jauh seperti yang Anda lakukan di fungsi yang dipanggil secara lokal.
Debugging Panggilan Fungsi Jarak Jauh
- Tidak mungkin men - debug panggilan fungsi jarak jauh ke sistem lain.
- Namun, saat menguji panggilan RFC ABAP ke ABAP, Anda dapat menggunakan debugger ABAP untuk memantau pelaksanaan fungsi RFC di sistem jarak jauh.
- Dengan panggilan jarak jauh, debugger ABAP (termasuk antarmuka debugging) berjalan di sistem lokal. Nilai data dan informasi proses lainnya untuk fungsi jarak jauh diteruskan dari sistem jarak jauh.