SAP Tutorial'da Remote Function Call (RFC)

İçindekiler:

Anonim

RFC nedir?

RFC, iş uygulamalarının diğer sistemlerle (önceden tanımlanmış biçimlerde) iletişim kurmasına ve bilgi alışverişinde bulunmasına olanak tanıyan bir mekanizmadır. RFC, 'Uzaktan İşlev Çağrısı' anlamına gelir

RFC iki arayüzden oluşur:

  1. ABAP Programları için bir çağrı arayüzü
  2. SAP dışı programlar için bir çağrı arabirimi.

Herhangi bir ABAP programı, CALL FUNCTION… DESTINATION deyimini kullanarak bir uzak işlevi çağırabilir . HEDEF parametresi olarak adlandırılan fonksiyon arayanlar dışındaki bir sistemde çalışır SAP Sistemi söyler.Sözdizimi-

ÇAĞRI FONKSİYONU 'remotefunction'DESTINATION destİHRACAT f1 =İTHALAT f2 =TABLOLAR t1 =İSTİSNALAR

Mantıksal Hedefler, SM59 işlemi aracılığıyla tanımlanır ve RFC arayüzünün Tablo RFCDES İşlevlerinde saklanır.

  • Tüm parametre verilerinin uzak sistemde ihtiyaç duyulan gösterime dönüştürülmesi
  • Uzak sistemle konuşmak için gereken iletişim rutinlerini çağırmak.
  • İletişim hatalarını işleme ve istenirse arayanı bilgilendirme (ÇAĞRI FONKSİYONUNUN İSTİSNALAR parametresini kullanarak).


RFC, ilgili programlamayı basitleştirmek için sistemler arasındaki iletişimi yöneten bir SAP protokolüdür. Arayan programdan farklı bir makinede bulunan bir işlev modülünü çağırma işlemidir. RFC'ler aynı makinede farklı bir programı çağırmak için de kullanılabilir, ancak genellikle 'çağırma' ve 'çağrılan' işlev modülleri / programları ayrı makinelerde çalışırken kullanılır.


SAP'de, RFC Arayüz sistemi, farklı SAP sistemleri arasında ve ayrıca bir SAP ile harici (SAP dışı) sistem arasında RFC bağlantılarını kurmak için kullanılır.

RFC Hakkında Ayrıntıları Bilmeli

  • SAP, Sistemler arasında veri aktarmak için CPIC (İletişim için Ortak Programlama Arayüzü) Protokolünü kullanır. SAP'ye özel protokoldür. Uzaktan İşlev Çağrısı (RFC), CPI-C tabanlı bir iletişim arabirimidir, ancak daha fazla işleve sahiptir ve uygulama programcılarının kullanması daha kolaydır
  • RFC kitaplık işlevleri, C programlama dilini ve Visual Basic'i (Windows platformlarında) destekler
  • RFC bağlantıları her zaman tüm sistemde kullanılabilir. Bu, istemcide 000'de tanımladığınız bir RFC bağlantısının istemciden 100 de (herhangi bir fark olmaksızın) kullanılabileceği anlamına gelir.
  • 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ürleri ile karşılaştırılabilir. Verilerin, tabloların ve dönüş kodlarının değiş tokuş edilebileceği tanımlanmış bir arayüze sahiptirler. Fonksiyon modülleri, Fonksiyon Oluşturucu adı verilen kendi fonksiyon kütüphanelerinde R / 3 Sisteminde yönetilir.
  • Fonksiyon Oluşturucu (SE37 işlemi), uygulama programcılarına hem yerel hem de uzaktan çağrılabilen fonksiyon modüllerinin programlanması, belgelenmesi ve test edilmesi için kullanışlı bir ortam sağlar. R / 3 Sistemi, uzak aramalar için gereken ek kodu (RFC saplaması) otomatik olarak üretir.
  • SM59 işlemini kullanarak RFC bağlantılarının parametrelerini korursunuz. R / 3 Sistemi, harici programların R / 3 Sistemine bağlanmasına izin vermek için kapsamlı C kitaplıkları kullanan bir RFC-SDK (Yazılım Geliştirme Kiti) ile birlikte verilir.
  • Bir işlev modülünün başka bir sunucuya uzaktan çağrılması ile yerel bir çağrı arasındaki tek fark, programın yürütüleceği hedef sunucuyu belirleyen özel bir parametredir (hedef).

RFC Avantajları:

RFC, uzak sistemlerde modüllerin ve yöntemlerin yeniden geliştirilmesini engelleyerek programcıların çabalarını azaltmaya yardımcı olur. Yeterince yeteneklidir:

  • Verileri uzak (hedef) sistem tarafından anlaşılabilir bir biçime dönüştürün.
  • Verileri uzak (hedef) sistem tarafından anlaşılabilir bir biçime 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:


Senkron

Her iki sistemin (istemci ve sunucu) iletişim veya veri aktarımı sırasında mevcut 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 sistemde bekler ve ACKD ile mesajı / veriyi teslim etmelerini sağlar. Veriler iletişim için tutarlı ve güvenilirdir.
Sorun, hedef sistem mevcut değilse, kaynak sistem kaynaklarının hedef sistem kullanılabilir olana kadar beklemesidir. Bu, kaynak sistem İşlemlerinin hedef sistemlerde Uyku / RFC / CPIC Moduna geçmesine ve dolayısıyla bu kaynakları engellemesine neden olabilir.
İçin kullanılır

  • Sistemler arası iletişim için
  • SAP Web Application Server ile SAP GUI arasındaki iletişim için

Eşzamansız

Alındı ​​bildiriminin gerekli olmadığı sistemler arasındaki iletişimdir (kartpostal teslimine benzer). Her iki sistemin de yürütme anında mevcut olmasını gerektirmez ve sonucun hemen arayan sisteme geri gönderilmesi gerekmez. .

Kaynak Sistem kaynağı, herhangi bir onay beklemeden mesajı / veriyi teslim ederken hedef sistemi beklemez. Hedef sistem mevcut değilse veri kaybedilebileceğinden iletişim için güvenilir değildir. İçin kullanılır -

  • Sistemler arası iletişim için
  • Paralel işleme için

İşlemsel

ARFC'nin özel bir şeklidir. İşlemsel RFC, başlangıçta otonom olan işlem adımlarının işleme benzer şekilde işlenmesini sağlar.

İşlemsel RFC, bazı ağ sorunları nedeniyle veriler birden çok kez gönderilse bile, aranan işlev modülünü RFC sunucusunda yalnızca bir kez çalıştıran eşzamansız bir iletişim yöntemidir. Uzak sistemin, RFC istemci programı bir tRFC yürüttüğü sırada mevcut olması gerekmez. TRFC bileşeni, çağrılan RFC işlevini karşılık gelen verilerle birlikte benzersiz bir işlem kimliği (TID) altında SAP veritabanında depolar. tRFC, hedef sistemde beklemediği için aRFC'ye benzer (kayıtlı bir gönderiye benzer). Sistem mevcut değilse, Verileri programlayıcı RSARFCSE tarafından alınan (her 60 saniyede bir çalışan) bir işlem kimliği (SM58) ile aRFC Tablolarına yazacaktır. İçin kullanılır-

  • Eşzamansız RFC'nin Uzantısı
  • 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'nin (Mantıksal İş / İşlem Birimi) uygulama tarafından belirtilen sırayla işlenmesini garanti etmek için. tRFC, kuyruklar (gelen ve giden kuyruklar) kullanılarak serileştirilebilir. Bu nedenle, isim RFC'yi (qRFC) sıraya koydu. İç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şlenmesini garanti etmek istiyorsanız, qRFC'nin uygulanması önerilir.

RFC Bağlantı Türleri


Tip 3 - girişler, ABAP sistemleri arasındaki bağlantıyı belirtir. Burada ana bilgisayar adını / IP adresini belirtmeliyiz. Bununla birlikte, isterseniz oturum açma bilgilerini belirtebilirsiniz. Bu, ABAP sistemleri arasında ve ABAP sistemlerine yapılan harici aramalar arasında her iki tip RFC için de geçerlidir.Tip I - 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ı

Tip T - hedefler, RFC'leri almak için RFC API kullanan harici programlara yapılan bağlantılardır. Aktivasyon 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 etkinleştirilmiş modül olarak ayarlayın.


2. İşlev modülünün kodunu yazın.


3. Uzak işlevi çağıran RFC istemci sistemindeki RFC sunucusunun hedefini tanımlayın (SM59 işlemi aracılığıyla).


4.Parametrelerin Bildirilmesi : Bir uzak işlev modülünün tüm parametre alanları, ABAP Sözlük alanları gibi referans alanları olarak tanımlanmalıdır.5. İstisnalar: Sistem, COMMUNICATION_FAILURE ve SYSTEM_FAILURE'ü dahili olarak yükseltir. Yerel olarak adlandırılan bir işlevde yaptığınız gibi, uzaktaki bir işlevde de istisnalar oluşturabilirsiniz.

Uzak İşlev Çağrılarında Hata Ayıklama

  • Öyle hata ayıklamak mümkün değildir başka bir sisteme uzak 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ı (hata ayıklama arayüzü dahil) yerel sistemde çalışır. Uzak işlev için veri değerleri ve diğer çalıştırma bilgileri uzaktaki sistemden aktarılır.