Soap Service
Last updated
Last updated
Bu aktivite, bir SOAP servisine XML formatında istek gönderilmesini sağlar. SOAP servis çağrılarında aşağıdaki adımlar izlenerek doğru yapılandırma yapılmalıdır:
Servisin URL bilgisi, POST yazan combobox'ın yanındaki Endpoint alanına yazılmalıdır.
Çağrılmak istenen servis metodu, Method alanına girilmelidir.
Eğer servise gönderilmesi gereken XML tabanlı bir istek yapısı varsa, bu veri Body sekmesine eklenmelidir.
Encoding seçimi varsayılan olarak utf-8 bırakılabilir. Ancak özel bir karakter seti gerektiren sistemler için açılır listeden uygun seçenek belirlenmelidir.
Tüm bilgiler girildikten sonra Send butonuna basılarak servis çağrısı gerçekleştirilir.
Not: Servise gönderilecek XML isteği mutlaka ilgili servisin WSDL (Web Service Definition Language) dosyasına uygun biçimde hazırlanmalıdır. Bunun için genellikle SoapUI gibi araçlar kullanılarak örnek istekler otomatik olarak üretilir. İlk kez SOAP servisi ile çalışıyorsanız, bu araçla WSDL yüklemesi yaparak ilgili methodları seçip örnek XML gövdelerini oluşturabilirsiniz. (https://www.soapui.org/tools/soapui/)
İlk Soap servis isteğinizi bu tool üzerinden nasıl oluşturacağınızı görmek için lütfen .
Özellikler
Display Name:Aktivitenin süreç içinde ayırt edilmesi için verilen isimdir. Varsayılan olarak "Soap Service" olarak ayarlanır.
Description : Aktivitenin işlevini açıklayan isteğe bağlı bir not alanıdır. Sürecin bakımını kolaylaştırmak için kullanılır.
Delay Before : Aktivite başlamadan önce geçen bekleme süresini (saniye cinsinden) belirtir.
Varsayılan Değer: 0 (Bekleme olmadan çalışır).
Örnek Kullanım: Aktivitenin çalıştırılmasından önce belirli bir süre beklemek gerekiyorsa, bu süre burada belirtilir. Örneğin, 2 yazılırsa aktivite başlamadan önce 2 saniye bekler.
Delay After: Aktivite tamamlandıktan sonra geçen bekleme süresini (saniye cinsinden) belirtir.
Varsayılan Değer: 0 (Bekleme olmadan bir sonraki aktiviteye geçer).
Örnek Kullanım: İşlem tamamlandıktan sonra sistemde gecikmeler yaşanıyorsa ya da sonraki adımın başlaması için bir süre verilmesi gerekiyorsa, bu alanda belirtilir.
Continue On Error: Aktivite sırasında bir hata oluştuğunda sürecin devam edip etmeyeceğini kontrol eden özelliktir.
True: Aktivite hata aldığında bile süreç çalışmaya devam eder.
False: Aktivite hata alırsa süreç durur.
Varsayılan Değer: False (Varsayılan olarak süreç hata alırsa durur).
Örnek Kullanım: Kritik olmayan işlemlerde hata olsa bile sürecin devam etmesi isteniyorsa bu seçenek True olarak ayarlanır. Örneğin, bir dosyanın varlığını kontrol eden bir aktivitede hata alınırsa ve süreç bu hataya rağmen devam etmeliyse bu seçenek aktif edilir.
HTTP Method
SOAP servis çağrısı sırasında hangi HTTP metodunun kullanılacağını belirtir. Genellikle POST metodu tercih edilse de GenRPA Studio, çeşitli özel senaryolar için başka methodları da destekler.
Kullanılabilen HTTP Methodlar:
POST
Kullanım Amacı: SOAP servis çağrılarında en yaygın kullanılan HTTP metodudur. XML gövdeli (body) bir istek sunucuya gönderilir.
GET
Kullanım Amacı: Normalde SOAP servisleriyle uyumlu değildir, ancak bazı servis sağlayıcılar SOAP-REST hibrit yapıları kullanabilir.
PUT
Kullanım Amacı: Servis üzerinde mevcut bir kaynağın güncellenmesi isteniyorsa kullanılır.
DELETE
Kullanım Amacı: Sunucudan belirli bir verinin silinmesini ifade eder.
HEAD
Kullanım Amacı: Sunucuya istek gönderilir ancak yalnızca header bilgisi alınır; body içeriği dönmez.
Encoding: Gönderilecek XML verisinin karakter kodlamasıdır. Özellikle farklı sistemlerle entegrasyonlarda önemlidir. Desteklenen encoding tiplerinden bazıları:
utf-8
ISO-8859-1
windows-1254
IBM860, x-mac-icelandic, macintosh vb.
Örnek kullanım: Servis özel bir encoding istiyorsa (örneğin IBM273), buradan seçilmelidir.
Params
Params sekmesi, SOAP servis çağrısı sırasında URL tabanlı parametrelerin gönderilmesini sağlar. Bu alan özellikle servis sağlayıcı tarafından istek URL’sinde parametre bazlı işlem bekleniyorsa kullanılır.
Kullanım Amacı:
Endpoint'e ek bilgiler iletmek (örneğin ?sessionId=1234)
Servisin işlevini dinamikleştirmek
REST benzeri bazı hibrit SOAP yapılarına destek vermek
Authorization
Bu sekme, SOAP veya REST servislerine yapılan çağrılarda kimlik doğrulama (authentication) bilgilerini tanımlamak için kullanılır. Servis sağlayıcısı tarafından isteklerin güvenliğini sağlamak amacıyla zorunlu kılınan yetkilendirme seçeneklerini içerir.
Kimlik doğrulama seçenekleri aşağıdaki gibidir:
No Auth
Açıklama: Kimlik doğrulaması gerektirmeyen servislerde kullanılır.
Örnek Kullanım: Açık uçlu (public) API’lerde tercih edilir.
Bearer Token
Veri Tipi: String
Açıklama: JSON Web Token (JWT) gibi kimlik belirteçleri ile yapılan kimlik doğrulamasıdır.
Örnek:
Header’da "Authorization": "Bearer eyJhbGciOi..." şeklinde kullanılır.
Genellikle kullanıcı oturumu açtıktan sonra sunucudan alınan token ile çalışır.
Basic Auth
Veri Tipi: String (Kullanıcı adı ve şifre)
Açıklama: Kullanıcı adı ve şifre ile temel HTTP kimlik doğrulamasıdır.
Örnek:
Kullanıcı adı: admin, Şifre: 1234
Header’da "Authorization": "Basic YWRtaW46MTIzNA==" olarak şifrelenmiş şekilde iletilir.
Kullanım Amacı:
Yetkilendirme gerektiren API çağrılarında kullanıcı doğrulaması yapmak
Servis sağlayıcısının tanımladığı güvenlik protokolüne uygun erişim sağlamak
Erişim kontrolü olan verilerin güvenli bir şekilde alınmasını sağlamak
Headers
Headers sekmesi, SOAP çağrısı yapılırken HTTP istek başlıklarının (header) tanımlandığı bölümdür. Bu başlıklar sunucuya iletilen isteğin formatı, yetkilendirme bilgisi, içerik türü gibi çeşitli metaverileri içerir.
Kullanım Örneği:
Alan
Açıklama
Key
HTTP başlığının adı. Örneğin: Content-Type, SOAPAction, Accept
Value
Başlığa karşılık gelen değer. Örneğin: application/soap+xml, text/xml
Description
Bu başlığın neden kullanıldığını belirten açıklayıcı metin (isteğe bağlı)
Body
Body sekmesi, SOAP servislerine gönderilecek olan XML tabanlı veri gövdesinin (SOAP Envelope) tanımlandığı alandır. Bu kısım, sunucuya gönderilen asıl içeriği temsil eder ve SOAP iletişiminin merkezini oluşturur.
Body alanına girilen veri mutlaka geçerli bir SOAP Envelope yapısında olmalıdır.
Örnek :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cus="http://example.com/customer">
<soapenv:Header/>
<soapenv:Body>
<cus:GetCustomer>
<cus:CustomerId>12345</cus:CustomerId>
</cus:GetCustomer>
</soapenv:Body>
</soapenv:Envelope>
! Xml Viewer Butonu:
Body alanının altında yer alan Xml Viewer butonu, yazdığınız XML içeriğini daha okunabilir ve yapılandırılmış biçimde görüntülemenizi sağlar. Özellikle iç içe geçmiş XML’lerde doğruluk kontrolü ve düzenleme açısından oldukça faydalıdır.
Cookies
Cookies sekmesi, SOAP (veya REST) servislerine yapılan çağrılarda, istemci tarafında tanımlı çerez (cookie) bilgilerini manuel olarak sunucuya iletmek amacıyla kullanılır. Özellikle oturum (session) yönetimi veya kullanıcı kimliğini geçici olarak saklayan sistemlerde kullanılır.
Kullanım Amacı:
Oturum bilgisini birden fazla istek boyunca korumak
Servis sağlayıcı tarafından gönderilen cookie değerlerini sonraki isteklerde geri iletmek
Oturum tabanlı erişim gerektiren sistemlerde tutarlılığı sağlamak
Alan
Açıklama
Key
Cookie adı. Örneğin: JSESSIONID, ASP.NET_SessionId, TokenId
Value
Cookie değeri. Örneğin: 4a8a08f09d37b73795649038408b5f33
Description
Bu cookie’nin ne amaçla kullanıldığını belirten açıklama (isteğe bağlı)
Butonlar
Add: Yeni bir satır (Key-Value çifti) ekler. Parametre, başlık, cookie veya benzeri bilgileri tanımlamak için kullanılır.
Remove: Seçili satırı siler. Yanlış girilen veya artık kullanılmayan bilgileri kaldırmak için kullanılır.
Clear: İlgili sekmede tanımlı tüm satırları temizler ve alanı sıfırlar.
Outputs
Outputs sekmesi, yapılan SOAP çağrısı sonucunda dönen çıktıları tanımlamak ve bu değerleri sürecin ilerleyen adımlarında kullanabilmek için kullanılır.
Response
Veri Tipi: Gen.Activities.Text
Açıklama: Servisten dönen yanıt içeriğinin tamamıdır. Genellikle XML formatındadır.
ResponseStatusCode
Veri Tipi: Gen.Activities.Number
Açıklama: HTTP yanıt kodudur. Örneğin 200 (başarılı), 500 (hata), 401 (yetkisiz) gibi.
Kullanım Örneği – Dummy SOAP Servisi ile Test Çağrısı
1. Servis Endpoint Tanımı
Bu adres, endpoint alanına girilir.
2. Method Bilgisi
SoapUI üzerinden test edilen işlem Add metodudur.
Bu bilgi, GenRPA Studio’daki Method alanına "Add" olarak girilir.
3.Body (SOAP Envelope) Tanımı
SoapUI üzerinde otomatik oluşturulan istek gövdesi (body) doğrudan GenRPA’daki Body sekmesine yapıştırılır.
4. Encoding Ayarı
SOAP servisleri çoğunlukla UTF-8 kodlamasıyla çalışır.
Encoding açılır menüsünden utf-8 seçilir.
5. Gerekli Header veya Authorization Bilgileri
Bu örnek servis herhangi bir özel header ya da yetkilendirme (authorization) gerektirmemektedir.
Ancak farklı SOAP servislerinde:
Headers sekmesinde özel başlık bilgileri (SOAPAction, Content-Type vb.)
Authorization sekmesinde ise Basic Auth ya da Bearer Token gibi kimlik doğrulama bilgileri tanımlanabilir.
Servis sağlayıcınız hangi yöntemi kullanmanız gerektiğini ve gerekli değerleri size sağlayacaktır.
6. İsteği Gönderme ve Yanıt Alma
Tüm alanlar tanımlandıktan sonra Send butonuna basılır.
SOAP servisine ait yanıt, GenRPA üzerinde Outputs sekmesinde görüntülenir.
Response, XML formatındaki servis yanıtı (örneğin: toplam sonucu)
ResponseStatusCode, HTTP durum kodu (örnek: 200 başarılı, 500 hata vb.)
Bu örnek ile SOAP servis entegrasyonunu GenRPA üzerinden test ederek başlatabilir, yapılandırılmış bir endpoint’e nasıl istek gönderileceğini öğrenebilirsiniz. Gelişmiş servislerde header, auth veya cookie tanımlamaları yaparak farklı seviyelerde SOAP servisiyle entegrasyon sağlamak mümkündür.
Not:
SOAP servisleri genellikle sadece POST metodunu destekler.
Diğer methodlar çoğunlukla REST-ile SOAP birlikte çalışan hibrit sistemlerde kullanılır.
SOAP servisleriyle çalışırken gönderilecek XML’in mutlaka WSDL tanımına uygun olarak yapılandırılması gerekir.
Örnek Kullanım:
Endpoint: Servisin çağrılacağı URL adresidir. Örnek:
Bu örnekte, SoapUI aracı ile test edilen adresindeki dummy SOAP servisi, GenRPA Studio üzerinden çağrılarak test edilmiştir.
?wsdl uzantısı WSDL tanım dosyasını içerse de, GenRPA üzerinde doğrudan servis endpoint adresi kullanılır: