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.

  • 📡 Çekirdek Mekanizması: CALL FUNCTION…DESTINATION komutu, SM59'da tanımlanan mantıksal bir hedef üzerinde bir fonksiyon modülünü çağırır.
  • 🔁 Dört Varyant: SyncKronolojik, Asenkron, İşlemsel ve Kuyruklu RFC'lerin her biri farklı bir teslimat garantisi sunar.tract.
  • 🌐 Bağlantı Türleri: SM59, Tip 3 (ABAP'tan ABAP'a), Tip I (aynı veritabanındaki eşler) ve Tip T (harici programlar) türlerini destekler.
  • Yapı Yolu: SE37'de fonksiyon modülünü Uzaktan erişime açık hale getirin, kodunu yazın ve çağıran tarafta SM59'da hedefi tanımlayın.
  • 🤖 Yapay Zeka Açısı: Yapay zekâ asistanları, doğal dil spesifikasyonlarından ABAP RFC taslakları oluşturur ve SM58 hatalarını uygulanabilir çözümlere dönüştürür.

RFC Arayüzünün İşlevleri

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:

  1. Çağrı arayüzü için ABAP programları.
  2. 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 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 EXCEPTIONS parametresi CALL FUNCTION.

RFC iletişimi arasında SAP sistemler

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: DESTINATION Programı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

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

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.

SE37 Uzaktan Kumandalı Modül

2 Adım: Fonksiyon modülünün kodunu kaynak kod düzenleyicisinde yazın.

Fonksiyon modülü kaynak kodu

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.

SM59 hedef kurulumu

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.

SSS

RFC, uzaktan erişime olanak tanıyan herhangi bir fonksiyon modülünü çağıran düşük seviyeli protokoldür. BAPI ise belirli bir, SAP-Kararlı bir iş nesnesi yöntemini ortaya çıkaran sertifikalı fonksiyon modülü — her BAPI, RFC aracılığıyla sunulur, ancak her RFC çağrısı bir BAPI'ye ulaşmaz.

Güvenilir bir RFC, hedef sistemin arayanın kimlik doğrulamasına güvendiği bir SM59 hedefidir; bu nedenle her çağrıda parola alışverişi yapılmaz. Arayanın kullanıcı bağlamı iletilir. Daha sıkı bir kurulum pahasına, sabit kodlanmış kimlik bilgilerini ortadan kaldırır.

SM58, yeniden işlenmeyi bekleyen başarısız veya beklemede olan işlemsel RFC girişlerini görüntüler. Her satırda İşlem Kimliği, çağrılan fonksiyon modülü, hedef konum, hata metni ve son yeniden deneme zamanı yer alır.

Hayır. Varsayılan olarak RFC trafiği şifrelenmemiştir. Trafiğin şifrelenmesi için SNC (Güvenli Ağ İletişimi) veya TLS/HTTPS hedeflerinin yapılandırılması gerekir. SNC, üretim ortamları için standart mekanizmadır.

tRFC, bir çağrının tam olarak bir kez yürütüleceğini garanti eder ancak çağrılar arasında sırayı korumaz. qRFC, tRFC üzerine kuruludur ve ek olarak çağrıları gelen veya giden kuyruklar aracılığıyla sıralar, böylece çağrılar uygulamanın tanımladığı tam sırayla çalışır.

Evet. Harici programlar bir sisteme kayıt olabilir. SAP RFC SDK'yı kullanan ağ geçidi (JCo için) Java(NCo for .NET veya C SDK). SAP Ardından, tıpkı herhangi bir ABAP fonksiyon modülü gibi, bunları bir T tipi hedef üzerinden çağırır.

Yapay zekâ asistanları, doğal dil spesifikasyonlarından ABAP RFC taslakları oluşturuyor, bir senaryo için doğru hedef türünü öneriyor ve SM58 hata metnini somut bir düzeltme listesine çeviriyor; bu da Basis ve ABAP ekipleri için günlük entegrasyon çalışmalarını hızlandırıyor.

Evet. Bir yapay zeka asistanına ST22 dökümünü veya SM58 hatasını verin; bu asistan, COMMUNICATION_FAILURE / SYSTEM_FAILURE kalıplarını en olası temel nedenlerle (süresi dolmuş sertifika, ağ geçidi kapalı, eksik yetkilendirme) ilişkilendirir ve incelenmesi gereken ilgili T-kodunu önerir.

Bu yazıyı şu şekilde özetleyin: