Uzaktan İşlev Çağrısı (RFC) SAP Klavuz
RFC nedir?
RFC, iş uygulamalarının diğer sistemlerle iletişim kurmasına ve (önceden tanımlanmış formatlarda) bilgi alışverişinde bulunmasına olanak tanıyan bir mekanizmadır. RFC'nin anlamı 'Uzaktan İşlev Çağrısı'
RFC iki arayüzden oluşur:
- ABAP Programları için çağrı arayüzü
- Olmayanlar için bir arama arayüzüSAP programları.
herhangi ABAP programı kullanarak uzaktan bir işlevi çağırabilirsiniz. ÇAĞRI FONKSİYONU… HEDEF Beyan. HEDEF parametre şunu söyler: SAP Çağrılan işlevin, çağıranların dışında 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 işlevleri
- Tüm parametre verilerinin uzak sistemde ihtiyaç duyulan gösterime dönüştürülmesi
- Uzak sistemle konuşmak için gereken iletişim rutinlerinin çağrılması.
- İletişim hatalarının ele alınması ve istenirse arayanın bilgilendirilmesi (ARAMA İŞLEVİNİN EXCEPTIONS parametresini kullanarak).
RFC bir SAP İlgili programlamayı basitleştirmek için sistemler arasındaki iletişimi yöneten protokol. Arayan programdan farklı bir makinede bulunan bir işlev modülünün çağrılması işlemidir. RFC'ler aynı makinede farklı bir programı çağırmak için de kullanılabilir, ancak genellikle 'çağrılan' ve 'çağrılan' işlev modülleri/programları ayrı makinelerde çalışırken kullanılır.
In SAPRFC Arayüz sistemi, farklı cihazlar arasındaki RFC bağlantılarını kurmak için kullanılır. SAP sistemlerve aynı zamanda bir SAP ve harici (olmayan)SAP) sistem.
RFC Hakkında Bilmeniz Gereken Ayrıntılar
- SAP Sistemler arasında veri aktarımı için CPIC (İletişim için Ortak Programlama Arayüzü) Protokolünü kullanır. Bu SAP Özel protokol. Uzaktan İşlev Çağrısı (RFC), CPI-C'yi temel alan bir iletişim arayüzüdür, ancak daha fazla işleve sahiptir ve uygulama programcılarının kullanımı daha kolaydır
- RFC kitaplığı işlevleri şunları destekler: C programlama dili ve Visual Basic (açık Windows platformlar)
- RFC bağlantıları her zaman sistemin tamamında kullanılabilir. Bu, client 000'de tanımladığınız bir RFC bağlantısının client 100'den de kullanılabileceği anlamına gelir (hiçbir fark olmadan).
- RFC, ağ üzerinden özel alt yordamları (işlev modülleri) çağırmak için kullanılan protokoldür. Fonksiyon modülleri C fonksiyonları veya PASCAL prosedürleriyle karşılaştırılabilir. Verilerin, tabloların ve dönüş kodlarının değiştirilebileceği tanımlanmış bir arayüze sahiptirler. İşlev modülleri, R/3 Sisteminde, İşlev Oluşturucu adı verilen kendi işlev kitaplığında yönetilir.
- İşlev Oluşturucu (işlem SE37), uygulama programcılarına programlama, belgeleme ve Test yapmak Yerel olarak ve uzaktan çağrılabilen fonksiyon modülleri. R/3 Sistemi, uzaktan aramalar için gereken ek kodu (RFC saplaması) otomatik olarak oluşturur.
- RFC bağlantılarının parametrelerini SM59 işlemini kullanarak korursunuz. R/3 Sistemi ayrıca harici programların R/3 Sistemine bağlanmasına izin vermek için kapsamlı C kitaplıklarını kullanan bir RFC-SDK (Yazılım Geliştirme Kiti) ile birlikte sunulur.
- Bir işlev modülünün başka bir sunucuya uzaktan çağrılması ile yerel çağrı arasındaki tek fark, programın yürütüleceği hedef sunucuyu belirten özel bir parametredir (hedef).
RFC Avantajları
RFC, uzak sistemlerdeki modüllerin ve yöntemlerin yeniden geliştirilmesinden kaçınmalarına olanak tanıyarak programcıların çabalarını azaltmaya yardımcı olur. Aşağıdakileri yapabilecek kadar yeteneklidir:
- Verileri uzak (hedef) sistemin anlayabileceği formata dönüştürün.
- Verileri uzak (hedef) sistemin anlayabileceği formata dönüştürün.
- Uzak sistemle iletişimi başlatmak için gerekli olan belirli rutinleri çağırın.
- İletişim sürecinde oluşabilecek hataları ele alın.
RFC Türleri
Syncküstah
İletişim veya veri aktarımı sırasında her iki sistemin de (istemci ve sunucu) kullanılabilir olmasını gerektirir. En yaygın türdür ve sRFC'nin yürütülmesinden hemen sonra sonuç gerektiğinde gereklidir.
sRFC, onayların gerekli olduğu sistemler arasında bir iletişim aracıdır. Kaynak Sistemin kaynakları hedef sistemi bekler ve mesajı/veriyi ACKD ile iletmesini sağlar. Veriler iletişim için tutarlı ve güvenilirdir.
Sorun, eğer hedef sistem mevcut değilse, kaynak sistem kaynaklarının hedef sistem kullanılabilir olana kadar beklemesidir. Bu, kaynak sistem Süreçlerinin hedef sistemlerde Uyku/RFC/CPIC Moduna girmesine ve dolayısıyla bu kaynakların engellenmesine yol açabilir.
İçin kullanılır
- Sistemler arası iletişim için
- Arasındaki iletişim için SAP Web Uygulama Sunucusu SAP GUI
eşzamanlı olmayan
Onay gerektirmeyen (kartpostal dağıtımına benzer) sistemler arası iletişimdir. Uygulama anında hem sistemlerin hazır olmasını gerektirmez hem de sonucun hemen çağıran sisteme geri gönderilmesi gerekmez. .
Kaynak Sistem kaynağı, mesajı/veriyi herhangi bir onay beklemeden teslim ederken hedef sistemi beklemez. Hedef sistemin mevcut olmaması durumunda veriler kaybolabileceğinden iletişim açısından güvenilir değildir. İçin kullanılır -
- Sistemler arası iletişim için
- Paralel işleme için
işlemsel
aRFC'nin özel bir şeklidir. İşlemsel RFC, başlangıçta özerk olan işlem adımlarının işlem benzeri işlenmesini sağlar.
İşlemsel RFC, çağrılan işlev modülünü RFC sunucusunda yalnızca bir kez yürüten, bazı ağ sorunları nedeniyle veriler birden çok kez gönderilse bile eş zamanlı olmayan bir iletişim yöntemidir. Uzak sistemin, RFC istemci programı bir tRFC yürütürken kullanılabilir olması gerekmez. tRFC bileşeni, çağrılan RFC işlevini, karşılık gelen verilerle birlikte, SAP benzersiz bir işlem kimliği (TID) altında veritabanı. tRFC, hedef sistemde beklemediği için aRFC'ye benzerdir (kayıtlı bir postaya benzer). Sistem mevcut değilse, Verileri zamanlayıcı RSARFCSE (her 58 saniyede bir çalışır) tarafından seçilen bir işlem kimliği (SM60) ile aRFC Tablolarına yazar. İçin kullanılır-
- Asenkron RFC'nin Genişletilmesi
- Sistemler arasında güvenli iletişim için
sıraya alındı
Sıraya alınmış RFC, tRFC'nin bir uzantısıdır. Ayrıca bireysel adımların sırayla işlenmesini sağlar. Birden fazla LUW'un (Mantıksal İş/İşlem Birimi) uygulama tarafından belirtilen sırada işlenmesini garanti etmek. tRFC, kuyruklar (gelen ve giden kuyruklar) kullanılarak serileştirilebilir. Bu nedenle sıraya alınmış RFC (qRFC) adı verilmiştir. İçin kullanılır-
- İşlemsel RFC'nin Uzantısı
- Tanımlanmış bir işlem sırası için
- Birkaç işlemin önceden tanımlanmış bir sırayla işlendiğini garanti etmek istiyorsanız qRFC'nin uygulanması önerilir.
RFC Bağlantı Türleri
3 yazın – girişler arasındaki bağlantıyı belirtir ABAP sistemleri. Burada host adını/IP adresini belirtmemiz gerekiyor. Ancak isterseniz oturum açma bilgilerini belirtebilirsiniz. Bu, ABAP sistemleri arasında ve ABAP sistemlerine yapılan harici çağrılar arasında her iki RFC türü için de geçerlidir.
İ harfini yaz - girişler mevcut sistemle aynı veritabanına bağlı ABAP sistemlerini belirtir. Bu girişler önceden tanımlanmıştır ve değiştirilemez. Örnek giriş adı: ws0015_K18_24
- ws0015=ana bilgisayar adı
- K18=sistem adı (veritabanı adı)
- 24=TCP-hizmet adı
T türü – hedefler, RFC'leri almak için RFC API'sini kullanan harici programlara yapılan bağlantılardır. Etkinleştirme türü Başlat veya Kayıt olabilir. Başlat ise, başlatılacak programın ana bilgisayar adını ve yol adını belirtmeniz gerekir.
RFC Nasıl Kodlanır?
1) İşlev modülü öznitelikleri sekmesinde (işlem kodu SE37), bir uzak işlev modülü oluşturmak için işleme türünü Uzaktan etkin modül olarak ayarlayın.
2) Fonksiyon modülünün kodunu yazın.
3) Uzak işlevi çağıran RFC istemci sistemindeki RFC sunucusunun hedefini (SM59 işlemi aracılığıyla) tanımlayın.
4) Parametrelerin Bildirilmesi: Uzak işlev modülüne ait tüm parametre alanları, ABAP Sözlüğü alanları gibi referans alanları olarak tanımlanmalıdır.
5) İstisnalar: Sistem, COMMUNICATION_FAILURE ve SYSTEM_FAILURE değerlerini dahili olarak yükseltir. Yerel olarak çağrılan bir işlevde olduğu gibi, uzak bir işlevde de istisnalar oluşturabilirsiniz.
Uzaktan İşlev Çağrılarında Hata Ayıklama
- Öyle hata ayıklamak mümkün değil başka bir sisteme uzaktan işlev çağrısı.
- Ancak ABAP'tan ABAP'a RFC çağrılarını test ederken, uzak sistemdeki RFC işlevinin yürütülmesini izlemek için ABAP hata ayıklayıcısını kullanabilirsiniz.
- Uzaktan aramalarda ABAP hata ayıklayıcısı (hata ayıklama arayüzü dahil) yerel sistemde çalışır. Uzak işleve ilişkin veri değerleri ve diğer çalıştırma bilgileri uzak sistemden iletilir.