Ana içeriğe geç

Web Hizmetleri

Bir sürecin harici bir sistemle iletişim kurması gerektiğinde web hizmetlerini kullanın.

Emakin hem SOAP hem de REST entegrasyonlarını destekler:

  • SOAP hizmetleri süreç tanımına kaydedilir ve ardından oluşturulan $Services yardımcıları aracılığıyla çağrılır.
  • REST hizmetleri genellikle doğrudan şu $Rest nesneyle çağrılır.

SOAP Hizmeti Kaydetme

  1. Süreç tasarımcısının web hizmetleri listesindeki artı (+) simgesine tıklayın.
  2. Hizmetin WSDL URL'sini girin.
  3. İletişim kutusunu onaylayın.

Hizmet otomatik olarak keşfedilir ve Emakin kullanılabilir uç noktalar için çağrılabilir yöntem meta verileri oluşturur.

Test Modu URL'si Bu alan isteğe bağlıdır ve boş bırakılabilir. Test ortamında farklı bir hizmet kullanmak istiyorsanız hizmetin URL'sini belirtebilirsiniz. İş akışı iş akışı test modundaysa bu adres otomatik olarak kullanılır. Test ve canlı hizmet tanımları aynı olmalıdır; aksi takdirde öngörülemeyen hatalar oluşabilir.

Hizmet Kimlik Doğrulaması

Bazı web hizmetlerine erişmek ve hizmeti keşfetmek için temel kimlik doğrulaması gerekebilir. Bu durumda hizmeti keşfetmeden veya çağırmadan önce eşleşen giden kimlik bilgisini alanadı yönetiminde kaydetmeniz gerekir.

Şunu kullanın: Kimlik Bilgilerini Düzenle, ardından:

  1. Şu bölümü açın: URL Kimlik Bilgileri
  2. Hedef hizmet adresi için bir kimlik bilgisi girdisi ekleyin.
  3. Hedef adresi, kullanıcı adını ve parolayı girin.
  4. Alanadı ayarlarını kaydedin.

Bu kimlik bilgilerini kaydettikten sonra, hizmeti keşfettiğinizde ve yöntemlerinden herhangi birini çağırdığınızda, kimlik bilgileri hizmete otomatik olarak iletilir.

Hizmet Kod Parçacıkları

Bir sürece SOAP hizmeti WSDL'si eklendikten sonra, bu hizmetin ayrıntılar sayfası otomatik olarak oluşturulur. Süreç tasarım düzenleyicisinin ana sayfasındaki ilgili web hizmeti simgesine tıklayarak bu sayfaya erişebilirsiniz.

Bu sayfada bir keşfet düğmesi ve web hizmetinin yöntemlerini listeleyen bir tablo bulunur. Web hizmetinde herhangi bir değişiklik yapıldığında, web hizmeti tanımınızı güncellemek için keşfet düğmesini kullanabilirsiniz.

Tüm yöntemleri görüntülemek için tablonun ayrıntılar düğmesine, bir yöntemin nasıl çağrılacağını gösteren kod parçasını görmek içinse ilgili yöntemin ayrıntılar düğmesine tıklayın. XML / JSON düğmesini kullanarak kod parçasını XML / JSON giriş türleri arasında değiştirebilirsiniz.

JSON Verileriyle SOAP Hizmetini Çağırma

1
2
3
var result = $Services.webServiceName.endPointName.methodName({
    date : '2018-01-01'
});

XML Verileriyle SOAP Hizmetini Çağırma

1
2
3
4
var result = $Services.webServiceName.endPointName.methodName(
        '<tem:query xmlns:tem="http://tempuri.org/">' +
        '<tem:date>2018-01-01</tem:date>' +
        '</tem:query>');

Hizmet Yanıtını Değerlendirme

SOAP web hizmetleri XML verileri döndürdüğünden, yanıt verilerinin herhangi bir bölümünü işlemek için Emakin'in $XML yöntemlerini yanıt nesnesi üzerinde çağırabilirsiniz.

Web hizmeti yanıtının yapısına bağlı olarak, aşağıda gösterildiği gibi yanıt verilerine bir ad alanı eklemeniz de gerekebilir.

1
2
3
4
5
6
7
8
9
var result = $Services.webServiceName.endPointName.methodName(...);

// register service namespace as default
result.AddNamespace('', 'http://somenamespace');

// select all elements
result.SelectAll('TablePath/RowPath', function (rowNode) {
    console.info(rowNode.Evaluate('property'));
});

SOAP Hizmetini Veri Kaynağı Olarak Kullanma

Web hizmeti kaydı, liste denetiminde (ör. açılır liste) veri kaynağı olarak da kullanılabilir.

Hizmet kaydedildikten sonra, "Web Service Query" türünde yeni bir veri kaynağı ekleyin.

Veri kaynağını düzenlemek için "Edit" düğmesine tıklayın. Hizmet yöntemi artık ekranda görüntülenir; hizmet yöntemi için giriş parametrelerini belirtin.

Özel SOAP Üstbilgileri

Tüm standart SOAP üstbilgileri sistem tarafından otomatik olarak işlenir; ancak bazı senaryolarda bilgi aktarımı için ek SOAP üstbilgileri ayarlamanız gerekebilir.

Hizmeti çağırırken, istek gövdesini belirttikten sonra üstbilgi gövdesi için ikinci bir nesne verebilirsiniz. Hizmet tanımında adıyla eşleşen bir üstbilgi varsa belirtilen değer SOAP mesajına aktarılır.

1
2
3
4
5
var result = $Services.webServiceName.endPointName.methodName({
    date : '2018-01-01'
}, {
    MyHeader: 'MyHeaderValue'
});

Hizmet Uç Noktası URL'sini Geçersiz Kılma

SOAP web hizmeti çağrılarında hizmet uç noktası URL'si varsayılan olarak sağlanan WSDL'den (Web Services Description Language) otomatik olarak belirlenir. Ancak özel dağıtım ortamları veya test gibi senaryolarda, otomatik belirlenen bu uç noktanın geçersiz kılınması gerekebilir. Emakin, bir hizmet çağrısı için hedef URL'yi açıkça tanımlama seçeneği sunar.

Varsayılan hizmet uç noktası URL'sini geçersiz kılmak için hizmet çağrınızda üçüncü bağımsız değişken olarak ek bir seçenekler nesnesi belirtebilirsiniz. Bu seçenekler nesnesindeki url özelliği, istenen uç noktayı belirtmek için kullanılır.

1
2
3
4
5
6
7
var result = $Services.webServiceName.endPointName.methodName({
    date : '2018-01-01' // Request body parameters
}, {
    MyHeader : 'MyHeaderValue' // Custom Headers, optional
}, {
    url : 'http://mysoapservice:8080/' // Overrides the service endpoint URL
});

Bu örnekte:

  • $Services.webServiceName.endPointName.methodName bir web hizmetinde belirli bir yöntemin çağrılmasını ifade eder.
  • İlk bağımsız değişken { date : '2018-01-01' } hizmet yönteminin istek gövdesi veya parametreleridir.
  • İkinci bağımsız değişken { MyHeader: 'MyHeaderValue' } özel HTTP üstbilgileri için isteğe bağlı bir nesnedir.
  • Üçüncü bağımsız değişken { url: 'http://mysoapservice:8080/' } seçenekler nesnesidir; burada url hizmet uç noktasını açıkça http://mysoapservice:8080/olarak ayarlamak için kullanılır. Bu URL, hizmetin WSDL'sinde tanımlanan tüm uç noktalara göre önceliklidir.

SOAP Hizmeti Tanılama

Bazı durumlarda hata ayıklama veya tanılama amacıyla SOAP isteğini ve yanıtını izlemeniz gerekebilir. Bu durumlarda, hizmet yanıtı yerine ham isteği ve yanıtı almak için hizmet çağrısına üçüncü parametreyi ekleyebilirsiniz.

İsteği İzleme

1
2
3
4
5
6
7
var result = $Services.webServiceName.endPointName.methodName({
    date : '2018-01-01'
}, null, {
    "return": 'request'
});

// result is set to soap:Envelope with request body

Yanıtı İzleme

1
2
3
4
5
6
7
var result = $Services.webServiceName.endPointName.methodName({
    date : '2018-01-01'
}, null, {
    "return": 'response'
});

// result is set to soap:Envelope with response body