Apa itu RFC?
RFC adalah mekanisme yang membolehkan aplikasi perniagaan berkomunikasi dan bertukar maklumat (dalam format yang telah ditentukan) dengan sistem lain. RFC bermaksud 'Panggilan Fungsi Jauh'
RFC terdiri daripada dua antara muka:
- Antara muka panggilan untuk Program ABAP
- Antara muka panggilan untuk program Bukan SAP.
Sebarang program ABAP dapat memanggil fungsi jarak jauh menggunakan penyataan CALL FUNCTION… DESTINATION . The DESTINATION parameter menceritakan SAP Sistem bahawa fungsi yang dipanggil berjalan dalam sistem yang lain daripada pemanggil.Sintaks-
FUNGSI PANGGILAN 'remote fungsi'DESTINASI destEKSPORT f1 =MENGIMPORT f2 =JADUAL t1 =PENGECUALIAN
Destinasi Logik ditentukan melalui transaksi SM59 dan disimpan dalam Jadual RFCDES
Fungsi antara muka RFC
- Mengubah semua data parameter ke representasi yang diperlukan dalam sistem jauh
- Memanggil rutin komunikasi yang diperlukan untuk bercakap dengan sistem jauh.
- Menangani kesalahan komunikasi, dan memberitahu pemanggil, jika dikehendaki (menggunakan parameter PENGECUALIAN FUNGSI PANGGILAN).
RFC adalah protokol SAP untuk menangani komunikasi antara sistem untuk memudahkan pengaturcaraan yang berkaitan. Ini adalah proses memanggil modul fungsi yang berada pada mesin yang berbeza dari program pemanggil. RFC dapat digunakan untuk memanggil program yang berbeda pada mesin yang sama juga, tetapi biasanya, ini digunakan ketika modul / program fungsi 'memanggil' dan 'dipanggil' dijalankan pada mesin yang terpisah.
Dalam SAP, sistem RFC Interface digunakan untuk mengatur sambungan RFC antara sistem SAP yang berlainan, dan juga antara sistem SAP dan sistem luaran (bukan SAP).
Mesti Tahu Perincian Mengenai RFC
- SAP Menggunakan Protokol CPIC (Antaramuka Pengaturcaraan Umum untuk Komunikasi) untuk memindahkan data antara Sistem. Ini adalah protokol Khusus SAP. Remote Function Call (RFC) adalah antara muka komunikasi berdasarkan CPI-C, tetapi dengan lebih banyak fungsi dan lebih mudah digunakan oleh pengaturcara aplikasi
- Fungsi perpustakaan RFC menyokong bahasa pengaturcaraan C dan Visual Basic (pada platform Windows)
- Sambungan RFC selalu boleh digunakan di seluruh sistem. Ini bermaksud bahawa sambungan RFC yang anda tentukan pada klien 000 juga boleh digunakan dari klien 100 (tanpa perbezaan).
- RFC adalah protokol untuk memanggil subrutin khusus (modul fungsi) melalui rangkaian. Modul fungsi dapat dibandingkan dengan fungsi C atau prosedur PASCAL. Mereka mempunyai antara muka yang ditentukan di mana data, jadual dan kod pengembalian dapat ditukar. Modul fungsi dikendalikan dalam Sistem R / 3 di perpustakaan fungsi mereka sendiri, yang disebut Function Builder.
- The Function Builder (transaksi SE37) menyediakan programmer aplikasi dengan persekitaran yang berguna untuk pengaturcaraan, pendokumentasian dan pengujian modul fungsi yang dapat dipanggil lokal dan juga dari jarak jauh. Sistem R / 3 secara automatik menghasilkan kod tambahan (RFC stub) yang diperlukan untuk panggilan jarak jauh.
- Anda mengekalkan parameter untuk sambungan RFC menggunakan transaksi SM59. Sistem R / 3 juga disertakan dengan RFC-SDK (Kit Pembangunan Perisian) yang menggunakan perpustakaan C yang luas untuk membolehkan program luaran disambungkan ke Sistem R / 3.
- Satu-satunya perbezaan antara panggilan jarak jauh dari modul fungsi ke pelayan lain dan panggilan tempatan adalah parameter khusus (destinasi) yang menentukan pelayan sasaran di mana program akan dijalankan.
Kelebihan RFC:
RFC membantu mengurangkan usaha pengaturcara, dengan membiarkan mereka menghindari pengembangan semula modul dan kaedah di sistem jauh. Ia cukup mampu untuk:
- Tukarkan data ke dalam format yang dapat difahami oleh sistem jauh (sasaran).
- Tukarkan data ke dalam format yang dapat difahami oleh sistem jauh (sasaran).
- Panggil rutin tertentu yang diperlukan untuk memulakan komunikasi dengan sistem jauh.
- Tangani kesalahan yang mungkin berlaku dalam proses komunikasi.
Jenis RFC:
Segerak
Memerlukan kedua-dua sistem (pelanggan dan pelayan) tersedia pada masa komunikasi atau pemindahan data. Ini adalah jenis yang paling umum dan diperlukan apabila hasilnya diperlukan segera setelah pelaksanaan sRFC.
sRFC adalah alat komunikasi antara sistem di mana pengakuan diperlukan. Sumber-sumber Sistem Sumber menunggu pada sistem sasaran dan memastikan bahawa mereka menyampaikan mesej / data dengan ACKD. Data adalah konsisten dan boleh dipercayai untuk komunikasi.
Masalahnya adalah jika sistem sasaran tidak tersedia, sumber sistem sumber menunggu sehingga sistem sasaran tersedia. Ini boleh menyebabkan Proses sistem sumber masuk ke Mode Tidur / RFC / CPIC pada sistem sasaran dan dengan itu menyekat sumber ini.
Digunakan untuk
- Untuk komunikasi antara sistem
- Untuk komunikasi antara SAP Web Application Server ke SAP GUI
Tidak segerak
Ini adalah komunikasi antara sistem di mana pengakuan tidak diperlukan (mirip dengan pengiriman poskad). Ia tidak memerlukan kedua-dua sistem itu tersedia pada masa pelaksanaan dan hasilnya tidak segera diminta untuk dikirim kembali ke sistem panggilan .Sumber Sistem Sumber tidak menunggu sistem sasaran kerana mereka menyampaikan mesej / data tanpa menunggu pengakuan. Ia tidak boleh dipercayai untuk komunikasi kerana data mungkin hilang jika sistem sasaran tidak tersedia. Digunakan untuk -
- Untuk komunikasi antara sistem
- Untuk pemprosesan selari
Transaksional
Ia adalah bentuk khas aRFC. Transactionional RFC memastikan pengendalian seperti proses pemprosesan yang pada awalnya bersifat autonomi.Transactionional RFC adalah kaedah komunikasi tak segerak yang melaksanakan modul fungsi yang disebut dalam pelayan RFC hanya sekali, walaupun data dihantar berkali-kali kerana beberapa masalah rangkaian. 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 pangkalan data SAP di bawah ID transaksi unik (TID). tRFC mirip dengan aRFC kerana tidak menunggu pada sistem sasaran (Sama dengan pos berdaftar). Sekiranya sistem tidak tersedia, ia akan menulis Data ke dalam Jadual aRFC dengan ID transaksi (SM58) yang dipilih oleh penjadual RSARFCSE (yang berjalan setiap 60 saat). Digunakan untuk-
- Peluasan RFC Asinkron
- Untuk komunikasi yang selamat antara sistem
Beratur
Antrian RFC adalah lanjutan dari tRFC. Ia juga memastikan bahawa setiap langkah diproses mengikut urutan.Untuk menjamin bahawa beberapa LUW (Unit Logik Kerja / Transaksi) diproses mengikut urutan yang ditentukan oleh aplikasi. tRFC boleh bersiri dengan menggunakan antrian (barisan masuk dan keluar). Oleh itu namanya beratur RFC (qRFC). Digunakan untuk-
- Peluasan RFC Transaksional
- Untuk urutan pemprosesan yang ditentukan
- Pelaksanaan qRFC disyorkan jika anda ingin menjamin bahawa beberapa transaksi diproses dalam urutan yang telah ditetapkan.
Jenis Sambungan RFC
Jenis 3 - entri menentukan hubungan antara sistem ABAP. Di sini, kita mesti menentukan nama host / alamat IP. Walau bagaimanapun, anda boleh menentukan maklumat log masuk jika dikehendaki. Ini berlaku untuk kedua-dua jenis RFC, antara sistem ABAP dan panggilan luaran ke sistem ABAPJenis I - entri menentukan sistem ABAP yang disambungkan ke pangkalan data yang sama dengan sistem semasa. Entri ini sudah ditentukan sebelumnya dan tidak dapat diubah. Contoh nama entri: ws0015_K18_24
- ws0015 = nama hos
- K18 = nama sistem (nama pangkalan data)
- 24 = Nama perkhidmatan TCP
Jenis T - destinasi adalah sambungan ke program luaran yang menggunakan RFC API untuk menerima RFC. Jenis pengaktifan boleh berupa Permulaan atau Pendaftaran. Sekiranya ia Mula, anda mesti menentukan nama host dan nama jalan program yang akan dimulakan.
Bagaimana Mengekod RFC?
1. Pada tab atribut modul fungsi (kod transaksi SE37), tetapkan jenis pemprosesan sebagai modul Berkemampuan jarak jauh untuk membuat modul fungsi jauh.
2. Tulis kod untuk modul fungsi.
3. Tentukan tujuan pelayan RFC dalam sistem klien RFC yang memanggil fungsi jarak jauh (melalui transaksi SM59).
4.Menyatakan Parameter : Semua medan parameter untuk modul fungsi jauh mesti didefinisikan sebagai bidang rujukan, seperti bidang Kamus ABAP.5. Pengecualian: Sistem meningkatkan KOMUNIKASI_FAILURE dan SYSTEM_FAILURE secara dalaman. Anda boleh meningkatkan pengecualian dalam fungsi jarak jauh seperti yang anda lakukan dalam fungsi yang disebut secara tempatan.
Menyahpecah Panggilan Fungsi Jauh
- Ia adalah tidak mungkin untuk nyahpepijat panggilan fungsi jauh ke sistem yang lain.
- Namun, semasa menguji panggilan RAP ABAP-ke-ABAP, anda dapat menggunakan debugger ABAP untuk memantau pelaksanaan fungsi RFC di sistem jauh.
- Dengan panggilan jarak jauh, debugger ABAP (termasuk antara muka debugging) berjalan pada sistem tempatan. Nilai data dan maklumat jalan lain untuk fungsi jarak jauh dihantar dari sistem jauh.