Uzaktan İşlev Çağrısı (RFC) SAP ABAP Eğitimi
⚡ Akıllı Özet
Uzaktan Fonksiyon Çağrısı (RFC) şudur: SAP ABAP programının başka bir programda çalışan bir fonksiyon modülünü çağırmasına olanak tanıyan iletişim mekanizması. SAP veya harici sistem. Bu,tracAğ altyapısını inceler, veri formatlarını dönüştürür ve hataları arayana düzgün bir şekilde iletir.
RFC nedir? SAP?
RFC için standlar Uzaktan Fonksiyon ÇağrısıRFC, iş uygulamalarının diğer sistemlerle önceden tanımlanmış formatlarda iletişim kurmasını ve bilgi alışverişinde bulunmasını sağlayan mekanizmadır. RFC, bunun en yaygın yoludur. SAP Sistem başka bir sistemle iletişim kurar ve aynı zamanda bu iki sistemi birbirine bağlayan köprüdür. SAP sistemler dışıSAP uygulamaları.
RFC iki arayüz sunar:
- Çağrı arayüzü için ABAP programları.
- Dış aramalar için bir arama arayüzü.SAP programları.
Herhangi bir ABAP programı, aşağıdaki yöntemi kullanarak uzak bir fonksiyonu çağırabilir: ÇAĞRI FONKSİYONU… HEDEF Beyan. DESTINATION parametre şunu söyler: SAP Çağrılan fonksiyonun, çağıran fonksiyondan farklı bir sistemde çalıştığı sistem.
Sözdizimi
CALL FUNCTION 'remotefunction'
DESTINATION dest
EXPORTING f1 = ...
IMPORTING f2 = ...
TABLES t1 = ...
EXCEPTIONS ...
Mantıksal hedefler işlem yoluyla tanımlanır. SM59 ve tabloda saklandı RFCDES.
RFC Arayüzünün İşlevleri
RFC çalışma ortamı, her çağrıda üç şeyden sorumludur:
- Tüm parametre verilerini, uzak sistemin beklediği gösterime dönüştürme.
- Uzak sistemle konuşmak için gereken iletişim rutinlerinin çağrılması.
- İletişim hatalarını ele almak ve bunları arayana iletmek
EXCEPTIONSparametresiCALL FUNCTION.
RFC şudur: SAP Sistemler arası iletişimi yöneten ve ilgili programlamayı basitleştiren bir protokoldür. Çağıran programdan farklı bir makinede bulunan bir fonksiyon modülünü çağırma işlemidir. RFC'ler teknik olarak bir fonksiyon modülünü çağırmak için kullanılabilir. aynı RFC arayüz sistemi, farklı makineler arasında RFC bağlantıları kurmak için kullanılır, ancak genellikle çağıran ve çağrılan programlar ayrı makinelerde çalıştığında kullanılır. SAP sistemlerarasında olduğu gibi SAP ve harici (olmayan)SAP) sistemler.
RFC Hakkında Bilmeniz Gereken Önemli Detaylar
- SAP kullanır CPIC CPIC (Ortak Programlama Arayüzü İletişimi), sistemler arasında veri aktarımı için kullanılan bir protokoldür. SAPRFC, CPI-C üzerine kurulu, ancak daha fazla fonksiyona ve uygulama programcıları için daha kullanıcı dostu bir arayüze sahip bir iletişim arayüzüdür.
- RFC kitaplığı işlevleri şunları destekler: C programlama dili ve Visual Basic üzerinde Windows platformlar.
- RFC bağlantıları tüm sistem genelinde çalışır. 000 istemcisinde tanımlanan bir RFC bağlantısı, 100 istemcisinden de hiçbir fark olmaksızın kullanılabilir.
- RFC, ağ üzerinden özel alt programları (fonksiyon modülleri) çağırmak için kullanılan protokoldür. Fonksiyon modülleri, C fonksiyonlarına veya Pascal prosedürlerine benzer: veri, tablo ve dönüş kodlarının değiş tokuş edildiği tanımlı bir arayüz sunarlar. Fonksiyon modülleri, RFC protokolü içinde yönetilir. SAP özel bir kütüphanedeki sistem, İşlev Oluşturucu.
- Fonksiyon Oluşturucu (işlem) SE37Bu, uygulama programcılarına kod yazma, belgeleme ve kod yazma için bir ortam sağlar. test yapmak Hem yerel hem de uzaktan çağrılabilecek fonksiyon modülleri. Sistem otomatik olarak ek kodu ( RFC taslağı(Uzaktan yapılan görüşmeler için gerekli.)
- RFC bağlantıları, işlem kullanılarak sürdürülür. SM59. SAP ayrıca bir gemi de gönderiyor RFC-SDK (Yazılım Geliştirme Kiti), harici programların bağlanabilmesi için kapsamlı C kütüphaneleri kullanır. SAP sistem.
- Başka bir sunucuya yapılan uzaktan çağrı ile yerel çağrı arasındaki tek fark şudur:
DESTINATIONProgramın çalıştırılacağı hedef sunucuyu belirten parametre.
RFC'nin Avantajları
RFC, uzak uçta modüllerin ve yöntemlerin yeniden uygulanması ihtiyacını ortadan kaldırarak programlama çabasını azaltır. RFC katmanı şunları üstlenir:
- Verileri, uzaktaki (hedef) sistemin anlayabileceği bir formata dönüştürmek.
- Uzak sistemle iletişimi kurmak için gereken rutinleri çağırmak.
- İletişim sırasında ortaya çıkan hataların ele alınması.
- İşlemsel veya kuyruğa alınmış varyantlar kullanıldığında güvenilir işlemsel anlambilim sağlamak.
RFC Türleri
SAP Dört farklı RFC varyantını destekler. Her biri gecikme, güvenilirlik ve sıralama garantileri arasında farklı bir denge sunar.
1. Synckronik RFC (sRFC)
SyncRFC (Rastgele Fonksiyon Çağrısı), çağrı anında hem istemcinin hem de sunucunun kullanılabilir olmasını gerektirir. En yaygın türdür ve çağrı yapanın yürütmeden hemen sonra sonuca ihtiyaç duyduğu durumlarda kullanılır.
sRFC, onay beklenen sistemler arasında iletişim kurmanın bir yoludur. Kaynak sistemin kaynakları hedef sistemi bekler ve mesajın bir ACK ile birlikte ulaşmasını sağlar. Değiştirilen veriler tutarlı ve güvenilirdir.
Dezavantajı ise, hedef sistem kullanılamaz durumdaysa, kaynak sistem kaynaklarının tekrar çalışır duruma gelene kadar beklemesidir; bu durum, kaynak sistem süreçlerini hedef sistemde Uyku/RFC/CPIC moduna itebilir ve kaynakları bloke edebilir.
İçin kullanılır:
- Sistemler arasında gerçek zamanlı iletişim.
- arasındaki iletişim SAP Web Uygulama Sunucusu ve SAP GUI.
2. Asenkron RFC (aRFC)
Asenkron RFC, onay gerektirmeyen sistemler arası iletişimdir; bu, "bırak" işlemine benzer.ping Postayla gönderilen bir kartpostal. Her iki sistemin de yürütme anında kullanılabilir olması gerekmez ve sonuç çağıran sisteme hemen geri döndürülmez.
Kaynak sistem kaynağı hedef sistemi beklemez; veriyi iletir ve yoluna devam eder. Bu durum aRFC'yi hızlı kılar ancak tek başına güvenilir yapmaz; hedef sistem kullanılamıyorsa veri kaybolabilir.
İçin kullanılır:
- Sistemler arasında "ateşle ve unut" prensibiyle çalışan iletişim.
- Sistemler arası paralel işlem.
3. İşlemsel RFC (tRFC)
İşlemsel RFC, eşzamansız RFC'nin özel bir biçimidir. Aksi takdirde özerk olacak işlem adımlarının işlem benzeri bir şekilde ele alınmasını sağlar.
tRFC, ağ sorunları nedeniyle veriler birden fazla kez gönderilse bile, çağrılan fonksiyon modülünü RFC sunucusunda tam olarak bir kez çalıştırır. Uzak sistemin, RFC istemcisi çağrıyı çalıştırdığı anda kullanılabilir olması gerekmez. tRFC bileşeni, çağrılan fonksiyonu ve verilerini saklar. SAP benzersiz bir veritabanı altında İşlem Kimliği (TID)Hedef sistem kullanılamıyorsa, veriler RFC tablolarına yazılır (işlemde görülebilir). SM58) ve daha sonra zamanlayıcı raporu tarafından alındı RSARFCSEBu program her 60 saniyede bir çalışır.
İçin kullanılır:
- Asenkron RFC'yi en fazla bir kez teslimat özelliğiyle genişletme.
- Kesintisiz yürütmenin önemli olduğu sistemler arasında güvenilir iletişim.
4. Sıraya Alınmış RFC (qRFC)
Sıraya alınmış RFC, çağıran uygulama tarafından belirtilen sırayla bireysel adımların işlenmesini garanti ederek tRFC'yi genişletir. Birden fazla LUW'nin (Mantıksal İş Birimleri / işlemler) amaçlanan sırada işlenmesini sağlamak için, tRFC gelen ve giden kuyruklar kullanılarak serileştirilebilir; "sıraya alınmış RFC" adı da buradan gelir.
İçin kullanılır:
- İşlemsel RFC'yi kesin sıralama ile genişletme.
- Belirli bir işlem sırasının zorunlu olduğu senaryolar.
- Birden fazla işlemin önceden tanımlanmış bir sırayla işlenmesi gereken durumlar.
RFC Türü Karşılaştırması
| Menşei | Arayan kişi bekliyor mu? | Dürüst? | Sipariş verildi mi? | En |
|---|---|---|---|---|
| sRFC | Evet | Evet | Yok (tek çağrı) | Gerçek zamanlı aramalar |
| aRFC | Yok hayır | Yok hayır | Yok hayır | Ateşle ve unut, paralel çalışma |
| tRFC | Yok hayır | Evet (tam olarak bir kez) | Yok hayır | Güvenilir eşzamansız güncellemeler |
| qRFC | Yok hayır | Evet (tam olarak bir kez) | Evet | Kesin sıralı güncellemeler |
RFC Bağlantı Türleri
SM59 çeşitli bağlantı türlerini destekler. En sık karşılaşacağınız üç tür aşağıda özetlenmiştir.
Tip 3 — ABAP'tan ABAP'a
Tip 3 girişleri, aralarındaki bağlantıyı belirtir. ABAP sistemleriAna bilgisayar adı veya IP adresi zorunludur; oturum açma bilgileri isteğe bağlı olarak sağlanabilir. Tip 3, hem ABAP sistemleri arasındaki RFC'ler hem de ABAP sistemlerine yapılan harici çağrılar için geçerlidir.
Tip I — Aynı Veritabanı Eş Değeri
Tip I girişleri, mevcut sistemle aynı veritabanını paylaşan ABAP sistemlerini belirtir. Bu girişler önceden tanımlanmıştır ve değiştirilemez. Tipik bir giriş adı şu şekildedir: ws0015_K18_24:
- ws0015 — sunucu adı
- K18 — sistem (veritabanı) adı
- 24 — TCP hizmet adı
Tip T — Harici Program
T tipi hedefler, RFC API'sini kullanarak RFC'leri alan harici programlara bağlanır. Etkinleştirme türü iki şekilde olabilir. Ana Sayfa or LisanslamaEğer "Başlat" seçeneği seçilirse, başlatılacak programın ana bilgisayar adı ve yolu belirtilmelidir.
nasıl Code bir RFC
Bir RFC'nin uçtan uca oluşturulması beş adımdan oluşur. İlk üçü SE37 ve SM59'da yapılan mekanik tıklamalardır; son ikisi ise bağlantıyı kurmakla ilgilidir.tracdoğru.
1 Adım: İşlemin fonksiyon modülü öznitelikleri sekmesinde SE37İşlem türünü şuna ayarlayın: Uzaktan Erişimli Modül Fonksiyon modülünü RFC uyumlu olarak işaretlemek.
2 Adım: Fonksiyon modülünün kodunu kaynak kod düzenleyicisinde yazın.
3 Adım: Uzak fonksiyonu çağıran RFC istemci sisteminde RFC sunucusunun hedef adresini tanımlayın — bu işlem bir işlem (transaction) içerisinde gerçekleştirilir. SM59.
4. Adım — Parametrelerin Tanımlanması: Uzaktan erişimli bir fonksiyon modülü için tüm parametre alanları, referans alanları olarak tanımlanmalıdır; yani, ABAP Sözlüğü alanlarına göre tiplendirilmelidir. Uzaktan erişimli fonksiyon modülleri için değer parametrelerine izin verilmez.
Adım 5 — İstisnalar: Sistem yükseltiyor İLETİŞİM_HATASI hem de SİSTEM_HATASI Taşıma seviyesindeki hatalar dahili olarak ele alınır. Uygulama seviyesindeki istisnalar, tıpkı yerel bir fonksiyonda olduğu gibi uzak bir fonksiyon içinde de ortaya çıkarılabilir.
Uzaktan İşlev Çağrılarında Hata Ayıklama
- Öyle hata ayıklamak mümkün değil Klasik yöntemle ABAP dışı bir sisteme uzaktan fonksiyon çağrısı yapılması — yabancı çalışma ortamı şeffaf değildir.
- Ancak, ABAP'tan ABAP'a RFC çağrıları için, ABAP hata ayıklayıcısı uzak sistem içindeki RFC fonksiyonunun yürütülmesini izlemek için kullanılabilir.
- Uzaktan çağrılarla, ABAP hata ayıklayıcısı (arayüz dahil) yerel sistemde çalışır. Uzak fonksiyon için veri değerleri ve diğer çalışma zamanı bilgileri, uzak sistemden geri aktarılır.
anahtar SAP RFC İşlemleri
Günlük RFC araç kutusu, her ABAP geliştiricisinin ve Basis yöneticisinin ezbere bilmesi gereken birkaç T-kodundan ibarettir.
| T kodu | Amaç |
|---|---|
| SM59 | RFC hedeflerini koruyun — ana bilgisayar, oturum açma, tür, güvenlik. |
| SE37 | Fonksiyon Oluşturucu — uzaktan erişime olanak tanıyan fonksiyon modülleri oluşturun veya düzenleyin. |
| SM58 | Başarısız olan işlemsel RFC'leri izleyin ve yeniden işleyin. |
| SMQ1 / SMQ2 | Giden (SMQ1) ve gelen (SMQ2) qRFC kuyruklarını izleyin. |
| GÜVEN | HTTPS korumalı RFC hedefleri tarafından kullanılan SSL sertifikalarını güncel tutun. |
| ST22 | Başarısız uzaktan çağrıların neden olduğu kısa dökümleri inceleyin. |
için En İyi Uygulamalar SAP RFC
İyi tasarlanmış bir RFC katmanı, entegrasyonları hızlı, gözlemlenebilir ve geliştirilmesi kolay hale getirir. Aşağıdaki alışkanlıklar her projeye dahil edilmeye değerdir.
- Kongre için doğru varyantı seçin.tract. Senkron aramalar için sRFC, en fazla bir kez tekrarlanan eşzamansız güncellemeler için tRFC ve sıralamanın önemli olduğu durumlarda qRFC kullanın.
- Hedef sistem başına yalnızca bir varış noktası kullanın. Sunucu adlarını birçok hedefe yaymak yerine, kimlik bilgilerinin dönüşümlü olarak kullanılmasını sağlar. tractablo.
- Kimlik bilgilerini asla doğrudan koda yazmayın. ABAP'ta. Mümkün olduğunca güvenilir sistem bağlantıları veya güvenli oturum açma biletleri kullanın.
- SM58 ve SMQ2 cihazlarını düzenli olarak izleyin. Takılı kalan tRFC kayıtları, yeniden işlenene kadar iş süreçlerini sessizce geciktirir.
- Yalnızca referans türündeki parametreleri iletin. Değer parametreleri, uzaktan erişime olanak tanıyan işlev modüllerini bozar.
- TLS sertifikalarını yönetmek için STRUST'u kullanın. HTTPS hedefleri için — süresi dolmuş sertifikalar, gizemli COMMUNICATION_FAILURE hatalarının en önemli nedenlerinden biridir.








