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.

  • 📡 Mekanisme Inti: CALL FUNCTION…DESTINATION memanggil modul fungsi pada tujuan logis yang didefinisikan dalam SM59.
  • 🔁 Empat Varian: SyncRFC Kronis, Asinkron, Transaksional, dan Antrian masing-masing menjamin kondisi pengiriman yang berbeda.tract.
  • 🌐 Jenis Koneksi: SM59 mendukung Tipe 3 (ABAP-ke-ABAP), Tipe I (rekan dalam basis data yang sama), dan Tipe T (program eksternal).
  • Bangun Jalur: Atur modul fungsi ke mode Remote-enabled di SE37, buat kodenya, dan tentukan tujuan di SM59 pada pemanggil.
  • 🤖 Sudut Pandang AI: Asisten AI menghasilkan stub RFC ABAP dari spesifikasi bahasa alami dan menguraikan kesalahan SM58 menjadi perbaikan yang dapat ditindaklanjuti.

Fungsi Antarmuka RFC

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:

  1. Antarmuka panggilan untuk program ABAP.
  2. 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

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 EXCEPTIONS parameter dari CALL FUNCTION.

Komunikasi RFC antara SAP sistem

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... DESTINATION parameter, 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

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

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.

Modul SE37 yang Dapat Diaktifkan dari Jarak Jauh

Langkah 2: Tulis kode untuk modul fungsi di editor kode sumber.

Kode sumber modul fungsi

Langkah 3: Tentukan tujuan server RFC di sistem klien RFC yang memanggil fungsi jarak jauh — dilakukan dalam transaksi. SM59.

Pengaturan tujuan 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.

Pertanyaan Umum Demo Slot

RFC adalah protokol tingkat rendah yang memanggil modul fungsi yang diaktifkan dari jarak jauh. BAPI adalah protokol spesifik, SAP-Modul fungsi bersertifikat yang mengekspos metode objek bisnis yang stabil — setiap BAPI diekspos melalui RFC, tetapi tidak setiap panggilan RFC mengenai BAPI.

Trusted RFC adalah tujuan SM59 di mana sistem target mempercayai otentikasi pemanggil, sehingga tidak ada kata sandi yang dipertukarkan pada setiap panggilan. Konteks pengguna pemanggil disebarkan. Ini menghilangkan kredensial yang dikodekan secara permanen dengan mengorbankan pengaturan yang lebih ketat.

SM58 menampilkan entri RFC transaksional yang gagal atau tertunda yang menunggu untuk diproses ulang. Setiap baris memuat ID Transaksi, modul fungsi yang dipanggil, tujuan target, teks kesalahan, dan waktu percobaan ulang terakhir.

Tidak. Secara default, lalu lintas RFC tidak terenkripsi. Tujuan SNC (Secure Network Communications) atau TLS/HTTPS harus dikonfigurasi untuk mengenkripsi lalu lintas. SNC adalah mekanisme standar untuk lingkungan produksi.

tRFC menjamin bahwa sebuah panggilan dieksekusi tepat sekali tetapi tidak mempertahankan urutan antar panggilan. qRFC dibangun di atas tRFC dan juga menserialisasikan panggilan melalui antrian masuk atau keluar, sehingga panggilan berjalan dalam urutan yang tepat seperti yang ditentukan aplikasi.

Ya. Program eksternal dapat mendaftar terhadap suatu sistem. SAP gerbang menggunakan RFC SDK (JCo untuk Java, NCo untuk .NET, atau C SDK). SAP lalu memanggilnya melalui tujuan Tipe T, sama seperti modul fungsi ABAP lainnya.

Asisten AI menghasilkan stub RFC ABAP dari spesifikasi bahasa alami, mengusulkan tipe tujuan yang tepat untuk suatu skenario, dan menerjemahkan teks kesalahan SM58 ke dalam daftar perbaikan konkret — mempercepat pekerjaan integrasi sehari-hari untuk tim Basis dan ABAP.

Ya. Berikan input berupa dump ST22 atau error SM58 kepada asisten AI, dan asisten tersebut akan menghubungkan pola COMMUNICATION_FAILURE / SYSTEM_FAILURE dengan penyebab utama yang paling mungkin — sertifikat kedaluwarsa, gateway down, otorisasi hilang — dan menyarankan T-code yang relevan untuk diperiksa.

Ringkaslah postingan ini dengan: