Salesforce Apex – Harita

Salesforce Apex Harita



Salesforce Apex haritası, ağırlıklı olarak tetikleme senaryolarında kullanılan ve bir liste gibi Salesforce veritabanına tek seferde daha fazla veri yüklenmesine yardımcı olan bir veri yapısıdır. Ancak verileri {key:value} çifti biçiminde depolar ve düzenler. Apex programlama dilinde harita koleksiyonunu ve yöntemlerini tartışacağız. Burada, tüm örnekler için Salesforce'taki Account standart nesnesini kullanacağız. Hızlıca bu eğitime geçelim.

Harita

Harita, {key:value} çifti verilerini girdi olarak alır ve Salesforce standart veya özel nesnelerinde saklar. sObject'i anahtar veya değer olarak alabilir.







Harita Oluşturma

Nesne adı ile birlikte anahtar ve değerin veri türlerini belirterek, harita oluşturulabilir. Burada, onu oluşturmak için yeni bir anahtar kelime kullanılır. Öğeleri oluşturma sırasında geçirmek isteğe bağlı olabilir.



Boş Harita Sözdizimi:

Map map_obj = new Map():

Genel Sözdizimi:

Harita map_obj = yeni Harita{

Anahtar => değer,....};

Nesne Sözdizimi:

Harita map_obj = yeni Harita{

Anahtar => değer,....};

Burada sObject, standart veya özel bir nesne olabilir. Bu makalenin tamamında, yalnızca “Hesap” sObject ile haritayı ele alacağız.



Apex “map” koleksiyonu tarafından desteklenen yöntemleri tek tek görelim.





Ortam Kurulumu

1. Salesforce'ta hızlıca oturum açın ve dişli simgesine tıklayarak 'Geliştirici Konsolu'nu açın.



2. Ardından, 'Debug' ve 'Open Execute Anonymous Window' üzerine tıklayarak 'Anonim Pencere'yi açın.

Genel Örnek:

İlk olarak, iki özneli bir harita oluşturarak jenerik harita oluşturmayı göreceğiz: anahtar görevi gören “subject_id” ve konu adı olarak “value”.

Map programlama=new Map {1=> 'Linux',2=> 'Python'};

system.debug(programlama);

Çıktı:

  1. 'Yürüt'e tıklayın.
  2. 'Yalnızca Hata Ayıkla' seçeneğini işaretleyin. Çıktıyı 'Yürütme Günlüğü'nde görebilirsiniz.

Harita Yöntemleri

Öncelikle “Account” nesnesinden bir harita oluşturuyoruz. Tek tek isimlerle üç hesap oluşturuyoruz. Ardından, anahtar ve değeri içeren bir haritayı şu şekilde bildiririz: önceki üç hesabı yazın ve bazı değerler sağlayarak haritaya iletin.

// Ad ile 3 hesap oluştur

Account account1 = new Account();

Account account2 = new Account();

Account account3 = new Account();

// Yukarıdaki hesapları map_obj'a anahtar olarak ekleyin

Harita map_obj = yeni Harita{

hesap1 => 1000,hesap2 => 2000,hesap3 => 3000};

System.debug(map_obj);

Çıktı:

“map_obj” üç hesabı sakladığını görebilirsiniz.

1. Harita.değerler()

Verilen haritadan yalnızca değerleri döndürmek için, values() yöntemini kullanabiliriz. Herhangi bir parametre almaz. Sadece virgülle ayrılmış değerlerin listesini döndürür.

Sözdizimi:

map_object.values()

Örnek:

Önceki haritadaki tüm değerleri döndürelim. Önceki örnek kodu çalıştırmanız gerektiğinden emin olun (üç hesaplı bir harita oluşturun). Aksi takdirde, bir hata alırsınız. Kod konsolda da bulunmalıdır.

// tüm anahtarlar için değerleri () kullanarak değerleri döndür

System.debug(map_obj.values());

Çıktı:

map_obj'de yalnızca üç anahtar:değer çifti vardır. Değerler: 1000, 2000 ve 3000.

2. Map.keySet()

Geri dönüş tuşları, harita nesnesinde bulunur. Values()'e benzer şekilde, bu yönteme herhangi bir parametre iletmeye gerek yoktur.

Sözdizimi:

map_object.keySet()

Örnek:

Önceki haritadaki tüm anahtarları geri getirelim. Önceki örnek kodu uyguladığınızdan emin olun (üç hesaplı bir harita oluşturun). Aksi takdirde, bir hata alırsınız. Kod konsolda da bulunmalıdır.

// keySet() kullanarak tüm Anahtarları döndürün

System.debug(map_obj.keySet());

Çıktı:

map_obj'de yalnızca üç anahtar:değer çifti vardır. Anahtarlar şunlardır: {Account:{Name=Linux Hint}, Account:{Name=Python} ve Account:{Name=Salesforce}.

3. Map.size()

Bazı senaryolarda, Apex haritasında bulunan toplam öğe (anahtar:değer) çiftlerini bilmemiz gerekir. Size(), map_nesnesinde bulunan toplam (anahtar:değer) çiftlerini döndüren yöntemdir. Bu yöntem için parametrelere gerek yoktur.

Sözdizimi:

map_object.size()

Örnek:

Önceki harita nesnesinin boyutunu döndürür.

// size() kullanarak toplam çift sayısını döndürün

System.debug(map_obj.size());

Çıktı:

Yalnızca 3 çift olduğundan, döndürülen boyut() 3'tür.

4. Map.get()

Anahtar kullanılarak haritadan değerlere erişim, get() yöntemi kullanılarak yapılır. Bunun için anahtarı get() metoduna parametre olarak geçirmemiz gerekiyor. Bilinmeyen bir anahtar iletilirse, bir hata döndürür.

Sözdizimi:

map_object.get(anahtar)

Örnek:

key-2 ve key-1'in değerlerini ayrı ayrı döndürün.

// ikinci anahtarın değerini al

System.debug(map_obj.get(hesap2));

// ilk anahtarın değerini al

System.debug(map_obj.get(hesap1));

Çıktı:

Burada 2000 “Salesforce” anahtarının değeri, 1000 ise “Linux Hint” anahtarının değeridir.

5. Map.clear()

Bir Apex harita koleksiyonundaki tüm çiftler clear() yöntemi kullanılarak tek seferde silinebilir. Herhangi bir parametre almaz.

Sözdizimi:

map_object.clear()

Örnek:

Önceki “map_obj” içindeki çiftleri kaldırın.

//Temizlemeden önce()

System.debug(map_obj);

// clear() kullanarak tüm çiftleri kaldırın

map_obj.clear();

//Temizledikten sonra()

System.debug(map_obj);

Çıktı:

Önceden, “map_obj” içinde 3 anahtar/değer çifti vardı. clear() yöntemini uyguladıktan sonra 3'ü de silinir.

6. Harita.eşittir()

equals() yöntemini kullanarak iki harita nesnesini karşılaştırabiliriz. Her iki harita nesnesinde de tüm anahtarlar ve değerler aynıysa, true'nun Boolean değeri döndürülür. En az bir değer farklıysa, false'un Boolean değeri döndürülür.

Sözdizimi:

map_object1.equals(map_object2)

Örnek:

Her biri 'Hesap' nesnesine göre bir anahtar:değer çifti ile üç harita nesnesi oluşturalım. Bu nesneleri aralarında karşılaştırın.

// Hesap-1

Account account1 = new Account();

Harita map_obj1 = yeni Harita{

hesap1 => 1000};

System.debug('Harita - 1:' + map_obj1);

// Hesap-2

Account account2 = new Account();

Harita map_obj2 = yeni Harita{

hesap2 => 1000};

System.debug('Harita - 2:' + map_obj1);

// Hesap-3

Account account3 = new Account();

Harita map_obj3 = yeni Harita{

hesap3 => 2000};

System.debug('Harita - 3:' + map_obj3);

// eşittir()

System.debug('Harita 1 ve Harita 2 Eşittir: '+ map_obj1.equals(map_obj2));

System.debug('Harita 1 ve Harita 3 Eşittir: '+ map_obj1.equals(map_obj3));

Çıktı:

Anahtarlar ve değerler her iki nesnede de aynı olduğundan, birinci ve ikinci harita nesneleri eşittir. Anahtarlar ve değerler farklı olduğu için birinci ve üçüncü harita nesneleri eşit değildir.

7. Map.isEmpty()

Haritanın boş olup olmadığını isEmpty() metodunu kullanarak kontrol edebiliriz. Apex harita koleksiyonu 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:

map_object.isEmpty()

Örnek:

“Hesap” ile ilişkili iki harita nesnesi oluşturalım ve bu ikisinin boş olup olmadığını kontrol edelim.

// Hesap-1

Account account1 = new Account();

Harita map_obj1 = yeni Harita{

hesap1 => 1000};



// Hesap-2

Map map_obj2 = new Map();

// boş()

System.debug('Map-1 boş: '+map_obj1.isEmpty());

System.debug('Map-2 boş: '+map_obj2.isEmpty());

Çıktı:

Bir anahtar/değer çifti tuttuğu için ilk harita boş değil. Hiçbirini tutmadığı için ikinci harita boş.

8. Map.remove()

Apex harita koleksiyonundaki remove() yöntemi, içinde parametre olarak belirtilen anahtara dayalı olarak belirli bir anahtar-değer çiftini kaldırmak için kullanılır. Anahtar yoksa, bir hata oluşur.

Sözdizimi:

map_object.remove(anahtar)

Örnek:

İki öğeli bir harita oluşturalım ve ilk öğeyi kaldıralım.

Account account1 = new Account();

Account account2 = new Account();

Harita map_obj = yeni Harita{

hesap1 => 1000,hesap2 => 4000};

System.debug('Mevcut Harita'+ map_obj);

//kaldırmak()

map_obj.remove(hesap1);

System.debug('İlk öğeyi kaldırdıktan sonra:'+map_obj);

Çıktı:

İlk öğeyi haritadan kaldırdıktan sonra yalnızca bir öğe var – {Account:{Name=Python}=4000}.

9. Map.put()

Bu yöntemi kullanarak, her seferinde harita nesnesine doğrudan bir öğe ekleyebiliriz. İki parametre kabul eder: 'anahtar' birinci parametre, 'değer' ise ikinci parametredir.

Sözdizimi:

map_object.put(anahtar,değer)

Örnek:

Bir anahtar/değer çifti ile bir harita oluşturalım. Ardından, 'account2' eklemek için 'put' yöntemini kullanırız.

// Hesap-1

Account account1 = new Account();

Harita map_obj1 = yeni Harita{

hesap1 => 1000};

System.debug('Gerçek Harita: '+map_obj1);

// Hesap-2

Account account2 = new Account();

// koymak()

map_obj1.put(hesap2,2000);

System.debug('Son Harita: '+map_obj1);

Çıktı:

Önceden, haritada {Account:{Name=Linux Hint}=1000} olan tek bir anahtar/değer çifti vardı. 'Account2' eklendikten sonra, son harita iki anahtar/değer çifti tutar: {Account:{Name=Linux Hint}=1000 ve Account:{Name=Python}=2000}.

10. Map.putAll()

Bu yöntemi kullanarak, harita nesnesine tek seferde tek veya birden çok öğeyi doğrudan ekleyebiliriz. Bir harita toplama nesnesini parametre olarak alır.

Sözdizimi:

map_object1.putAll(map_object2)

Örnek:

İki anahtar/değer çifti ile bir harita oluşturalım ve tekrar öğe içermeyen boş bir harita nesnesi oluşturalım. Birinci harita nesnesinde bulunan öğeleri ikinci harita nesnesine eklemek için putAll() yöntemini kullanın.

Account account1 = new Account();

Account account2 = new Account();

Harita map_obj1 = yeni Harita{

hesap1 => 1000, hesap2=> 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//tümünü koy()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Çıktı:

Çözüm

Harita, esas olarak tetikleme senaryolarında kullanılan ve bir liste gibi Salesforce veritabanına tek seferde daha fazla veri yüklenmesine yardımcı olan bir veri yapısıdır. Öğeleri haritaya eklemek için iki seçeneğimiz var: put() ve putAll() kullanarak. Remove() yöntemi, belirli bir öğeyi Apex harita koleksiyonundan kaldırmak için kullanılır. clear() yöntemi, tüm öğeleri silmek için kullanılır. Ayrıca, values() ve keySet() yöntemlerini kullanarak değerleri ve anahtarları nasıl döndüreceğimizi öğrendik.