Salesforce Apex List, Salesforce veritabanına aynı anda daha fazla veri yüklemeye yardımcı olan bir veri yapısıdır. Bu yazımızda Apex programlama dilinde “List” koleksiyonunu ve metotlarını ele alacağız. Bunların dışında, insert DML deyimini kullanarak, uygulamalar bölümündeki listeyi kullanarak Salesforce nesnelerine verilerin nasıl ekleneceğini de ele alacağız.
Salesforce ile tanışın
Bildiğimiz gibi Salesforce, web tabanlı bir şirket ve yazılımı hizmet olarak sunan OneCRM Platformudur. Salesforce, müşteri ilişkilerini sürdürerek üretkenliğini günden güne artırıyor. Salesforce'a verileri içinde depolayan ve bize daha iyi bir şekilde manipülasyon sağlayan bir bulut diyebiliriz. Diğer bulut platformları gibi Salesforce da bize 'Apex' olarak bilinen müşterilerle ve satış ekibiyle kolayca iletişim kuran bir dil sunuyor. Önce Apex hakkında konuşalım.
tepe noktası
Apex, güçlü bir şekilde yazılan ve Nesne Yönelimli Kavramları destekleyen programlama dilidir. Sözdizimi Java'ya daha yakındır ve koşullu ifadeleri, kontrol yapılarını ve Java'ya benzer diğer değişkenleri ve veri türlerini destekler. Apex ayrıca SQL gibi saklı yordamları da korur. Üç koleksiyonu destekler - 'Liste', 'Harita' ve 'Küme'.
Liste ve Yöntemleri
Temel olarak “Liste”, diğer programlama dillerindeki bir diziye benzeyen ve öğeleri/öğeleri sıralı bir şekilde depolayan bir koleksiyondur. Ayrıca 'Hesap', 'İlgili Kişi', 'Fırsat' ve 'Diğer Özel' nesneler gibi Salesforce nesnelerini (sObjects) depolayabilir. İç içe geçmiş listelerin ve bir listedeki öğelerin çoğaltılması mümkün olabilir.
“Liste” ile işe başlamadan önce kodlarımızın çalışabilmesi için bir kod ortamına ihtiyacımız var.
Bunun için tarayıcınıza aşağıdaki URL'yi yazarak Salesforce Hesabına giriş yapalım: https://login.salesforce.com/ . (Hesabınız yoksa aynı linki açarak kayıt olabilirsiniz)
Adımlar:
1. Profilinizin sağına gidin. Dişli simgesine tıklayın.
2. 'Hizmet Kurulumu'nun altındaki 'Geliştirici Konsolu'na tıklayın. Hemen “Konsol” diyebileceğimiz yeni bir pencere açılıyor.
3. 'Hata Ayıklama'ya tıklayın ve 'Anonim Yürütme Penceresini Aç'ı seçin.
4. Anında Apex sınıflarını ve ifadelerini yürütmek için kullanılan bir düzenleyici açılacaktır.
5. Kodu yazdıktan sonra çalıştırmak istediğimiz Apex deyimlerini seçip “Execute Highlighted” butonuna tıklayabiliriz. Tüm kodun yürütülmesini istiyorsanız, 'Yürüt' düğmesine tıklamanız yeterlidir.
6. Günlüğü açmak için 'Günlüğü Aç' onay kutusunu işaretlediğinizden emin olun. Günlüğü yalnızca seçerek görebilirsiniz.
Aşağıdaki komutu kullanarak bir “Merhaba” mesajı görüntüleyelim:
system.debug('Merhaba Linuxhint');7. Son olarak, yalnızca geçerli kod çıktısını görmek için 'Yalnızca Hata Ayıklama' seçeneğini işaretleyin.
Liste Oluşturma
Nesne adı ile birlikte veri türü belirtilerek “Liste” oluşturulabilir. Burada, onu oluşturmak için new anahtar kelimesi kullanılır. Öğeleri oluşturma sırasında geçirmek isteğe bağlı olabilir.
Sözdizimi:
List1. Liste.add()
Bu yöntemi kullanarak, liste nesnesine her seferinde bir öğeyi doğrudan ekleyebiliriz.
Dizini birinci parametre olarak ve eklenecek bir öğeyi ikinci parametre olarak belirterek belirli bir dizin konumuna bir öğe eklemek de mümkün olabilir.
Sözdizimi:
list_object.add(öğe)list_object.add(dizin_konumu,öğe)
Örnek:
3 maddelik bir liste oluşturalım ve bazı maddeleri tek tek add() metodunu kullanarak ekleyelim.
// Bir Liste Oluştur - 3 öğeli mobilya.List
system.debug('Gerçek Öğeler: ');
system.debug(mobilya);
// add() yöntemini kullanarak 3 öğeyi birer birer ekleyin.
mobilya.add('ahşap');
mobilya.add(2,'tabak');
mobilya.add(2,'Yataklar');
system.debug('Son Öğeler: ');
system.debug(mobilya);
Çıktı:
İlk önce “ahşap” ekliyoruz. Ardından, ikinci indeks konumuna “plakalar” ekliyoruz. İkinci konuma da “Yataklar” ekliyoruz. Son olarak, liste öğeleri şu sırayla tutar: [Masa, Sandalyeler, Yataklar, tabaklar, Diğerleri, ahşap].
2. List.addAll()
Önceki yöntem, liste nesnesine her seferinde yalnızca bir öğe ekler. Bu yöntemi kullanarak, bir listeden birden çok öğeyi yeni listeye ekleyebiliriz. İlk parametre olarak indeksi belirterek ve ikinci parametre olarak bir eleman ekleyerek belirli bir indeks konumuna bir eleman eklemek de mümkün olabilir. Her iki listenin de aynı türde olduğundan emin olun.
Sözdizimi:
list_object.addAll(list_object_another)Burada, list_object bizim asıl listemizdir ve list_object_another, list_object'e eklenecek bazı öğeleri içeren listedir.
Örnek:
İlk örneğimize benzer şekilde, “furniture2” adlı başka bir liste oluşturun ve ilk liste olan “mobilya1” i geçin.
// Bir Liste Oluştur - 3 öğeli mobilya1.List
system.debug('Liste-1: ');
system.debug(mobilya1);
// Boş Liste Oluştur - mobilya2.
Liste
system.debug('Gerçek Liste-2: ');
system.debug(mobilya2);
// addAll() kullanarak mobilya1 öğelerini mobilya2'ye ekleyin.
mobilya2.addAll(mobilya1);
system.debug('Son Liste-2: ');
system.debug(mobilya2);
Çıktı:
İlk liste (mobilya1) üç öğe tutarken, ikinci liste (mobilya2) boştur. 'Mobilya1'den 'mobilya2'ye kadar tüm öğeleri ekliyoruz. Son olarak liste-2 (mobilya2), “mobilya1” ile aynı olan 3 öğeyi tutar.
3. Liste.size()
Bazı senaryolarda, Apex listesinde bulunan toplam öğeleri bilmemiz gerekir. Size(), listede bulunan toplam öğeleri döndüren yöntemdir. Bu yöntem için parametrelere gerek yoktur.
Sözdizimi:
list_object.size()Örnek:
Bazı sipariş miktarlarını içeren bir Apex listesi oluşturun ve boyutu döndürün.
// Bir Liste Oluştur - 5 miktar için fiyat.List
system.debug('Liste: ');
system.debug(siparişler);
// Listenin boyutunu döndürür.
system.debug('Toplam Siparişler: ');
system.debug(orders.size());
Çıktı:
Listemizde 5 sipariş var.
4. List.get()
Listeden öğelere erişmek çok önemlidir. Bunu yapmak için Apex listesi, öğeyi dizin konumuna göre döndüren get() yöntemini destekler. Dizin oluşturma 0'dan başlar. Dizin yoksa aşağıdaki hatayı verir:
Sözdizimi:
list_object.get(index_position)Örnek:
Bazı sipariş miktarlarıyla bir Apex listesi oluşturun ve bazı öğeleri döndürün.
// Bir Liste Oluştur - 5 miktar için fiyat.List
system.debug('Liste: ');
system.debug(siparişler);
// get() yöntemi
system.debug('Birinci Sıra: '+ Orders.get(0));
system.debug('Dördüncü Düzen: '+orders.get(3));
Çıktı:
Listemizde 5 sipariş var. Önce index-0 yani 900'de olan elemana, sonra index-3 yani 600'de olan elemana ulaşıyoruz.
5. List.isEmpty()
Listenin boş olup olmadığını isEmpty() metodunu kullanarak kontrol edebiliriz. Apex listesi boşsa True döndürülür. Aksi takdirde false döndürülür. size() yöntemine benzer şekilde, herhangi bir parametre almaz.
Sözdizimi:
list_object.isEmpty()Örnek:
Boş bir liste oluşturarak listenin boş olup olmadığını kontrol edin.
// Bir Liste Oluştur - 5 miktar için fiyat.List
// isEmpty() yöntemi
system.debug('Liste Boş mu: '+orders.isEmpty());
Çıktı:
Liste boş olduğundan true döndürülür.
6. Liste.temizle()
Bir Apex listesindeki tüm öğeler clear() yöntemi kullanılarak tek seferde silinebilir. Herhangi bir parametre almaz.
Sözdizimi:
list_object.clear()Örnek:
5 öğrenci adına sahip tüm öğeleri listeden kaldırın.
// Bir Liste Oluştur - öğrencilerList
system.debug('Liste : '+ öğrenciler);
// temizle() yöntemi
öğrenciler.temizle();
system.debug('Liste : '+ öğrenciler);
Çıktı:
clear() yöntemini uyguladıktan sonra 'öğrenciler' listesi boştur.
Başvuruları Listele
1. nesne
Verileri 'Account', 'Contact' vb. gibi Salesforce standart nesnelerine ekleyebiliriz. Bu senaryoda, liste veri türü yerine sObject adını vermemiz gerekir.
Bu örneğe bakalım: Burada sObject tipinde “Account” olarak bir liste oluşturuyoruz. İsmini ekleyip listeye ekliyoruz.
2. DML İşlemi
Listeleri, Salesforce verilerine eklenen kayıtları depolamak için kullanabiliriz. Insert ifadeleri ile kayıtları/kayıtları Salesforce veri tabanına ekleyebiliriz.
Aşağıdaki koda bakın. Buraya sadece bir insert ifadesi ekliyoruz:
Kaydın oluşturulup oluşturulmadığını kontrol edelim.
- 'Uygulama Başlatıcı'ya gidin ve 'Hesaplar'ı arayın.
- “Hesap Kaydı” detay sayfası açılacaktır. Şimdi, “Linuxhint” hesabını arayın.
- 'Hesap Adı' üzerine tıklayın. Ayrıntıları burada görebilirsiniz.
Çözüm
Artık rehberimizin sonuna geldik. Bu kılavuzun bir parçası olarak, Salesforce platformunu ve Apex'i ele aldık. List, Apex programlama dili tarafından desteklenen koleksiyonlardan biridir. Ardından “List” ile desteklenen metotları örnekler ve sözdizimi ile birlikte öğrendik. “Liste” toplama uygulamalarını örneklerle tartışarak bu kılavuzu tamamladık.