Bağlantınız hazırsa SQL adımını bir akışın içine ekleyerek kendi tablonuzdan veri okuyabilirsiniz. Önce aramanın tek bir kayıt mı, liste mi döndüreceğini ve kayıt bulunmadığında ne yapılacağını belirleyin. Bu kararı sorguyu yazmadan vermek, sonraki adımların beklediği veriyi netleştirir.
1. Okuma işini tarif edin
Hangi tablodan hangi alanları alacağınızı, filtre değerinin mesajın neresinden geleceğini ve sonuçta kaç satır beklediğinizi belirleyin. Bir müşteri kodu body’den, bir kayıt kimliği API parametresinden veya çalışma ayarı properties dosyasından gelebilir. Veri kaynağı her projede aynı değildir.
Tablo ve sütun adlarını kendi şemanızdan alın. Sadece kullanılan alanları seçin; büyük bir tabloyu sınırsız SELECT * ile tek mesaja yüklemeyin. Satır sınırlama ve sayfalama sözdizimi veritabanına göre değişebilir.
2. SQL adımını ayarlayın
- Designer içinde okumanın yapılacağı yere adım ekleyip SQL seçin.
- Query alanına SELECT sorgunuzu yazın.
- Data Source alanında hazırladığınız bağlantıyı seçin.
- Sonuç beklentinize göre Output Type ayarını belirleyin.
- Sonraki adımın bu sonucu nasıl kullanacağını ekleyin ve kaydedin.
| Output Type | Ne zaman seçilir? | Sonuç |
|---|---|---|
SelectList | Bir aramanın sıfır, bir veya birden fazla satır döndürmesi normal olduğunda | Satır listesi; boş sonuç [] |
SelectOne | Sorgudan en fazla bir satır beklendiğinde | Tek satır için alan/değer nesnesi; tek sütun seçildiyse o değer; kayıt yoksa null |
StreamList | Büyük sonucu topluca belleğe almak yerine satır satır işlemek gerektiğinde | Akış halinde okunacak sonuç; sonraki adımların da buna uygun kurulması gerekir |
SelectOne, “ilk satırı al” seçeneği değildir. Birden fazla satır gelirse hata verir. Tek kayıt bekliyorsanız sorgunun ve tablodaki benzersizlik kuralının bunu sağlaması gerekir.
StreamList seçmek tek başına bütün akışı bellek açısından güvenli yapmaz. Sonraki adım sonucu yeniden listeye topluyorsa veya işleme boyunca bağlantı açık kalıyorsa bu davranışları da planlayın. İlk okumada küçük, sınırlı bir sonuçla ilerleyin.
3. Gelen değeri sorguya bağlayın
Kullanıcıdan veya başka sistemden gelen değeri SQL metnine birleştirmeyin. Sorguda adlandırılmış parametre kullanın. Örneğin :#recordId, recordId alanının değerini bağlar; bu isim sizin alanınıza göre değişir.
- Değer body içindeki bir alan ise JSON metnini önce Unmarshal ile nesneye çevirin. Parametre adı ile alan adını eşleştirin.
- Değer header’da ise
:#${header.recordId}gibi açık bir header referansı kullanabilirsiniz. - Değer daha önce bir exchange property’sinde saklandıysa
:#${exchangeProperty.recordId}üzerinden bağlayabilirsiniz.
Parametre bir değer içindir. Tablo adı, sütun adı veya ORDER BY yönünü kullanıcı metninden serbestçe üretmek için kullanılmaz. Bu seçimler değişkense izin verilen seçenekleri uygulamanız belirlemelidir.
{{…}} proje/ortam ayarını, ${…} o anki mesajı ifade eder. Parametrenin bulunması kadar tipinin de doğru olması gerekir: sayı, metin, tarih ve null farklı değerlerdir.
4. Sonucu sonraki adıma hazırlayın
SQL sonucu varsayılan olarak body içine yazılır. Sorgudan önceki body’ye sonradan ihtiyaç duyuyorsanız önce bir Set Property adımıyla saklayın veya SQL’in Output Header ayarını kullanarak sorgu sonucunu ayrı tutun.
API’ye JSON yanıtı döndürecekseniz sonuç nesnesini Marshal → JSON ile metne çevirin ve uygun içerik türünü verin. Listeyi başka sisteme tek tek gönderecekseniz her satırın nasıl işleneceğini ve bir satırdaki hatanın diğerlerini durdurup durdurmayacağını belirleyin; dönüşüm ve parçalama araçlarına bakın.
Veritabanından bir satırı okumak, o satırı işlenmiş olarak işaretlemez. Zamanlanmış bir akış aynı sorguyu tekrar çalıştırıyorsa aynı kayıtlar yeniden gelebilir. Hangi kaydın yeniden işlenebileceğini ve tamamlanmanın nasıl kaydedileceğini ayrıca tasarlayın.
5. Boş sonuç ve gerçek sonucu kontrol edin
Liste aramasında boş sonuç çoğu zaman normaldir. Tek kayıt zorunlu olan bir işte ise “kayıt bulunamadı” yanıtı veya ayrı bir dal gerekebilir. Choice ile bu kararı açıkça verin; null bir sonucun alanını doğrudan okumayın.
Gerçek çalıştırmada şu üç girdiyi deneyin: kayıt bulan değer, kayıt bulmayan değer ve biçimi hatalı değer. Beklenen satır sayısını, alan adlarını ve tiplerini kontrol edin. Run gerçek veritabanını kullanır; alıcı yanıtını sizin verdiğiniz simülasyon yalnız bu örnek sonucun akışta nasıl işlendiğini gösterir.
Hazır bir uygulamayla görmek isterseniz örnekteki sipariş aramasına geçin. Yazma yapacaksanız kayıt ekleme ve güncelleme ile devam edin.