Blogs

Salesforce Bulk API 2.0 Nedir? Nasıl Kullanılır?

Salesforce Bulk API 2.0, Salesforce sistemine büyük hacimli verileri hızlı ve verimli biçimde aktarmak için kullanılan bir REST servisidir. Günlük 100 milyon kayıt limitiyle toplu insert, update, delete ve upsert işlemlerini yönetir. Önceki sürüm olan Bulk API v1’e kıyasla çok daha az adımla aynı sonucu verir: manuel batch bölümleme gerekmez, OAuth 2.0 ile kimlik doğrulama doğrudan gerçekleşir ve dosya bölümleme otomatik olarak yapılır. Bu yazıda Salesforce Bulk API 2.0’ın ne olduğunu, v1 ile farkını ve Postman üzerinden adım adım nasıl kullanıldığını ele alıyoruz.

Salesforce Nedir? Bulk API Neden Gereklidir?

Salesforce, dünya genelinde 150.000’den fazla büyük-küçük ölçekli şirket tarafından kullanılan bulut tabanlı bir CRM platformudur. Platform; müşteri ilişkileri yönetimi, satış otomasyonu ve pazarlama süreçleri için kapsamlı araçlar sunar. SAP ve Salesforce entegrasyonu gerçekleştiren kurumlar için iki platform arasında büyük veri transferi kaçınılmaz hale gelir.

Salesforce, geliştiricilere entegrasyon kolaylığı sağlamak amacıyla SOAP ve REST tabanlı çeşitli API’ler sunar. Bu API’ler arasında büyük veri aktarımı için öne çıkan çözüm Bulk API’dir. Bulk API, standart REST API’nin kayıt başına çağrı sınırlamalarını aşarak yüz binlerce hatta milyonlarca kaydı tek bir iş akışında işlemenizi sağlar.

Salesforce Bulk API 2.0 Nedir?

Salesforce Bulk API 2.0, büyük veri kümelerini Salesforce sistemine yüklemek veya sistemden çekmek için tasarlanmış REST tabanlı bir servistir. Veriler yalnızca CSV formatında gönderilir; bu tercih, XML veya JSON gibi formatlara kıyasla fazladan meta veri içermediğinden büyük dosyalarda belirgin bir boyut tasarrufu sağlar.

Bulk API 2.0’ın üç temel özelliği onu v1’den ayırır:

OAuth 2.0 Desteği: Bulk API 2.0, diğer Salesforce REST API’leri gibi OAuth akışlarının tamamını destekler. Ayrı bir SOAP çağrısıyla session token almak gerekmez; kimlik doğrulama süreci standart OAuth 2.0 akışıyla tek adımda tamamlanır.

Otomatik Dosya Bölümleme: Bulk API v1’de gönderilen büyük dosyaları batch’lere bölmek geliştiricinin sorumluluğundaydı ve karmaşık hata yönetimi gerektiriyordu. Bulk API 2.0’da bu işlem otomatik olarak yapılır. Büyük CSV dosyasını yüklersiniz, sistem arka planda optimum batch boyutlarına böler ve işler.

Günlük Kayıt Limiti: Bulk API 2.0’da limitler job bazlı değil, gönderilen kayıt satırı sayısına göre belirlenir. 24 saatlik dönemde toplam 100 milyon kayıt işlenebilir.

Bulk API v1 ile Bulk API 2.0 Karşılaştırması

İki versiyonun farkını somutlaştırmak için aynı işlemin her iki versiyondaki adımlarına bakalım.

Bulk API v1 ile veri yükleme adımları:

  1. Ayrı bir SOAP API çağrısıyla authenticated Session ID alınır.
  2. Bulk API v1 Job oluşturulur.
  3. Gönderilecek veri manuel olarak batch’lere ayrılır. Bu adım senaryoya göre karmaşıklaşır: batch boyutu sınırları, PK Chunking veya comparison gibi özel işlem yöntemleri, zaman aşımı riskleri ve hata analizi gerektirir.
  4. Veri oluşturulan batch’lere yüklenir.
  5. Verinin doğru yüklendiği kontrol edilir.
  6. Job kapatılır ve durumu sorgulanır.
  7. Hatalı kayıtlar tespit edilir; gerekirse yeni bir Job oluşturularak yeniden gönderilir.
Salesforce Bulk API v1 iş akışı diyagramı

Bulk API 2.0 ile aynı işlem:

  1. OAuth servisiyle kimlik doğrulaması yapılır.
  2. Bulk API 2.0 Job oluşturulur.
  3. Tüm veri tek seferde yüklenir; batch bölümleme otomatiktir.
  4. Job kapatılır ve durumu sorgulanır.
  5. Hatalı kayıtlar ayrı bir API çağrısıyla listelenir; gerekirse yeni Job oluşturulur.
Salesforce Bulk API v2 iş akışı diyagramı

Sonuç: v1’de 9 adım, v2’de 5 adım. Manuel batch yönetimi ortadan kalkmış, hata yönetimi basitleşmiştir. API entegrasyonu projelerinde bu fark geliştirme süresini ve bakım maliyetini doğrudan etkiler.

Postman ile Bulk API 2.0 Kullanımı: Adım Adım

Aşağıdaki adımlarda Postman üzerinden Bulk API 2.0 ile Contact nesnesi için insert işlemi gerçekleştiriyoruz.

1. Job Oluşturma

Job oluşturmak için /services/data/v{{apiVersion}}/jobs/ingest/ adresine POST metodu ile istek atılır.

Salesforce Bulk API 2.0 Job oluşturma POST isteği

Örnek istek gövdesi:

JSON

{
    "object": "Contact",
    "contentType": "CSV",
    "operation": "insert"
}

2. Veriyi Yüklemek

Önceki adımdan dönen yanıttaki JobId değeri alınır. Veriyi yüklemek için /services/data/v{{apiVersion}}/jobs/ingest/{{jobId}}/batches adresine PUT metodu ile istek atılır. Header’da Content-Type: text/csv olmalıdır.

Salesforce Bulk API 2.0 veri yükleme PUT isteği

Örnek CSV verisi:

CSV

FirstName,LastName,Title,Email
John,Doe,Bulk API User,testuser@mdpgroup.com

3. Job’ı Kapatmak

Veri gönderimi tamamlandıktan sonra Job kapatılmalıdır. /services/data/v{{apiVersion}}/jobs/ingest/{{jobId}} adresine PATCH metodu ile istek atılır.

Salesforce Bulk API 2.0 Job kapatma PATCH isteği

4. Job Durumunu Kontrol Etmek

Job durumunu sorgulamak için aynı adrese GET metodu ile istek atılır.

Salesforce Bulk API 2.0 Job durum sorgulama

5. Hatalı Kayıtların Listesi

İşlem sırasında oluşan hataları görmek için /services/data/v{{apiVersion}}/jobs/ingest/{{jobId}}/failedResults adresine GET metodu ile istek atılır.

Salesforce Bulk API 2.0 hatalı kayıtlar listesi

Bulk API v1’e kıyasla çok daha az adımla aynı sonuca ulaşıldı: batch bölümleme, zaman aşımı yönetimi ve SOAP kimlik doğrulaması gibi karmaşıklıklar tamamen ortadan kalktı.

SAP ile Salesforce Bulk API 2.0 Entegrasyonu: MDP Adapter

Bulk API 2.0 ile veri yükleme, Job yönetimi, sonuç kontrolü ve SOQL desteğiyle Salesforce ortamından hızlı veri çekme işlemlerini tek adımda gerçekleştirmek için MDP SAP Salesforce Adapter‘ı kullanabilirsiniz. Adapter, SAP Integration Suite üzerinde çalışır ve Bulk API 2.0’ın tüm işlem adımlarını kapsülleyerek geliştirme süresini önemli ölçüde kısaltır.

MDP SAP Salesforce Bulk API v2 Adapter

SAP S/4HANA ve Salesforce arasında bulut tabanlı entegrasyon mimarisi konusunda daha fazla bilgi almak için ilgili blog yazımızı inceleyebilirsiniz.

Sık Sorulan Sorular

Salesforce Bulk API 2.0 ile hangi işlemler yapılabilir?

Bulk API 2.0 insert, update, delete ve upsert işlemlerini destekler. Ayrıca query işlemi ile Salesforce’tan büyük veri kümelerini dışa aktarmak da mümkündür. Tüm işlemler CSV formatında veriyle gerçekleştirilir.

Bulk API 2.0 ile günde kaç kayıt işlenebilir?

Günlük limit 100 milyon kayıttır. Bu limit 24 saatlik dönem için geçerli olup job sayısından değil, işlenen toplam kayıt satırı sayısından hesaplanır.

Bulk API v1 yerine v2 kullanmam şart mı?

Salesforce, Bulk API v1’i resmi olarak deprecated ilan etmiştir ve yeni entegrasyonlar için Bulk API 2.0 kullanımını önermektedir. Mevcut v1 entegrasyonlarınız bir süre daha çalışmaya devam etse de yeni geliştirmelerde v2’ye geçmek hem bakım kolaylığı hem de uzun vadeli destek açısından doğru tercih olacaktır.

Bulk API 2.0 ile Salesforce standart REST API arasındaki fark nedir?

Standart Salesforce REST API tek kayıt ya da küçük gruplar için optimize edilmiştir ve günlük API çağrı limitleri kapsamındadır. Bulk API 2.0 ise büyük veri kümelerini asenkron olarak işlemek için tasarlanmıştır; batch bazlı çalışır ve ayrı bir günlük limit (100 milyon kayıt) uygulanır. Yüz binlerce veya milyonlarca kayıt aktarımında Bulk API tercih edilmelidir.

SAP’tan Salesforce’a veri aktarımında Bulk API 2.0 nasıl kullanılır?

SAP Integration Suite üzerinde MDP SAP Salesforce Adapter kullanılarak bu entegrasyon kurulabilir. Adapter, Job oluşturma, veri yükleme, Job kapatma ve sonuç kontrolü adımlarını otomatik olarak yönetir. SAP tarafında herhangi bir özel Bulk API geliştirmesi yapmanıza gerek kalmaz.

Referanslar

Salesforce Bulk API 2.0 Developer Guide — Salesforce Developers
MDP Salesforce Bulk API v2 Adapter for SAP Cloud Platform Integration — SAP Community
API Entegrasyonu Nedir? Nasıl Çalışır? — MDP Group
SAP S/4HANA ve Salesforce Arasında Bulut Tabanlı Entegrasyon Mimarisi — MDP Group


Benzer
Bloglar

Mailiniz başarıyla gönderilmiştir en kısa sürede sizinle iletişime geçilecektir.

Mesajınız ulaştırılamadı! Lütfen daha sonra tekrar deneyin.