Bazı entegrasyon senaryolarında belirli yönlendirme koşullarına bağlı olarak, mesajlar farklı alıcılara yönlendirilebilir. SAP CPI’da böyle bir işlemi yapmak için Router toolunu kullanabiliriz.
Avantajlar:
• S4 sisteminden tek bağlantı adresi ile (SM59) birden çok adrese mesaj gönderimi yapılabilir.
Ön Koşullar:
- Orta seviyede ABAP Bilgisi
- Temel seviyede SAP CPI bilgisi
- Orta seviyede HTTPS request metot bilgisi
İşlemimizi gerçekleştirmek için öncelikle SAP CPI’da HTTPS post metodu ile tetiklenen ve içerisinde 1 adet router bulunan bir iFlow hazırlamamız gerekiyor.
SAP CPI sistemine giriş yaptıktan sonra sol taraftaki menüde bulunan content package butonuna tıklıyoruz.

Yeni bir package oluşturmak için sol üstte bulunan Create butonuna tıklıyoruz.

Create butonuna tıkladıktan sonra gelen ekranda package isimlendirmemizi yapıp sol üstteki Save butonuna tıklayarak package yaratıyoruz.

Artifacts kısmına tıklayıp Add butonu ile yeni bir iFlow (Integration Flow) eklemesi yapıyoruz.


iFlow’umuzu oluşturduktan sonra ilk olarak S4 tarafından tetiklenecek HTTPS bağlantısını oluşturuyoruz.
HTTPS bağlantısını oluşturmak için Sender’a tıklayıp Connector okunu Start mesajı ile sürükle bırak yaparak birleştiriyoruz.

Sürükle bırak işleminden sonra gelen ekranda adaptör tipini belirliyoruz.

Connection kısmından adres alanını belirliyoruz. (Örnek: /solvia_routing)

Authorization kısmını buradan belirleyebiliyoruz. (User Role=Basic authentication, client certificate)
Ayrıca Cross-Site Request Forgery (CSRF) saldırılarından korunmak için CSRF protected butonunun seçili olması gerekiyor.
HTTPS bağlantımızı oluşturduktan sonra Participant butonunu kullanarak yeni bir alıcı ekliyoruz.

Alıcımızı ekledikten sonra yeni bir End Message eklemesi yapmamız gerekiyor.


End Message eklemesini yaptıktan sonra artık Routerımızı yerleştirebiliriz.

Router ekleme işleminden sonra Routerın üzerine tıklayıp Connector okunu kullanarak ikinci bağlantımızı oluşturuyoruz.

Ardından End Messagelar ile receiverları sürükle bırak ile birleştiriyoruz. Receiver burada ulaşılması istenen endpoint adresi olduğundan dolayı SAP CPI bize tekrar hangi adaptör tipi ile gideceğimizi soracaktır. Biz bu örnekte bir HTTPS Post işlemi yaptığımız için HTTPS adaptörünü seçiyoruz.


İki receiver içinde aynı bağlantıyı yapıyoruz. Burada Address kısmı adresin domain kısmını, Query kısmı ise adreste hangi uzantıya post işlemini gerçekleştireceğimizi belirtiyor.
Son işlem olarak routerın koşullarını belirlememiz gerekiyor. Bunun için router’dan çıkan oklara sırasıyla tıklayıp yönlendirme koşullarımızı yazıyoruz.

Expression Type kısmında XML ve Non-XML olmak üzere iki adet seçenek bulunuyor. Eğer gönderdiğimiz HTTPS body kısmı bir XML ise burada xpath fonksiyonlarını kullanıp belirli değerleri alabiliriz. Bu örnekte ise HTTPS post metodunun header kısmını kullanarak koşullarımızı belirleyeceğiz, bu yüzden Non-XML seçeneğini seçip HTTPS mesajının headerından okuma yapacağız.
HTTP mesajının header bilgisine ” ${header.on-premise} = ‘true’ ” ifadesini yazıp ulaşabiliyoruz.
Senaryomuzda gelen header bilgisine göre requesti On-Premise veya Cloud sistemine göndereceğimiz için aşağıdaki gibi bir koşul belirlemesi yapıyoruz.
1.Koşul

2.Koşul

Ve bu iki koşul sağlanmadığında routerın nereye yöneleceğini belirlemek için yeni bir bağlantı oluşturup Default seçeneğini işaretliyoruz. Default route herhangi bir yere bağlanmadığı için header parametreleri gönderilmediği takdirde işlem sonlanacak.
Oluşturulan iFlow’un son hali:

iFlow’umuzu sağ üstten deploy ediyoruz.

Deploy işlemi tamamlandıktan sonra SAP tarafındaki işlemlere başlayabiliriz. Deploy işleminden sonra SAP CPI tarafından oluşturulan endpointi kullanarak SM59 bağlantısı oluşturulur.
SM59 bağlantısı oluşturulduktan sonra aşağıdaki kod bloğu ile iFlow’umuza post işlemini gerçekleştirebiliriz.

