APEX Eğitimi: Apex Programlama Sınıfı ve Kodlama Örnekleri
Salesforce'ta Apex nedir?
Tepe Salesforce tarafından Hizmet Olarak Yazılım (SaaS) ve Müşteri İlişkileri Yönetimi (CRM) oluşturmak için geliştirilen, nesne yönelimli ve güçlü tipte bir programlama dilidir. Apex, arka uç veritabanı desteği ve istemci-sunucu arayüzleri sağlayarak geliştiricilerin üçüncü taraf SaaS uygulamaları oluşturmalarına ve sistem olaylarına iş mantığı eklemelerine yardımcı olur.
Apex, geliştiricilerin düğme tıklamaları, ilgili kayıt güncellemeleri ve Visualforce sayfaları gibi sistem olaylarına iş mantığı eklemelerine yardımcı olur. Apex'in söz dizimi benzerdir Java. Salesforce'a kaydolun CRM'in nasıl çalıştığını öğrenmek için
Apex Programlama Dilinin Özellikleri
Salesforce Apex'in önemli özellikleri şunlardır:
- Apex büyük/küçük harfe duyarlı olmayan bir dildir.
- Apex kullanarak sObject kayıtları üzerinde INSERT, UPDATE, UPSERT, DELETE gibi DML işlemlerini gerçekleştirebilirsiniz.
- Apex'te SOQL (salesforce nesne sorgulama dili) ve SOSL (salesforce nesne arama dili) kullanarak sObject kayıtlarını sorgulayabilirsiniz.
- oluşturmanıza olanak sağlar. ünite testi ve doğrulamak için bunları yürütün kod kapsamı ve kodun apeksteki verimliliği.
- Apex çok kiracılı bir ortamda yürütülür ve Satış Gücü Bir kullanıcının paylaşılan kaynakları kontrol etmesini engelleyen bazı düzenleyici limitler tanımlamıştır. Salesforce yönetici sınırını aşan herhangi bir kod başarısız olur ve bir hata ortaya çıkar.
- Salesforce nesnesi apex'te veri türü olarak kullanılabilir. Örneğin -
Account acc = new Account();
Burada Hesap standart bir salesforce nesnesidir.
- Apex, her Salesforce sürümünde otomatik olarak yükseltilir.
Geliştirici Ne Zaman Apex'i Seçmeli?
Apex kodu yalnızca bir iş senaryosu çok karmaşıksa ve Salesforce tarafından sağlanan önceden oluşturulmuş işlevler kullanılarak uygulanamıyorsa yazılmalıdır.
Aşağıda apex kodu yazmamız gereken birkaç senaryo bulunmaktadır:
- Salesforce'u diğer uygulamalarla entegre eden web hizmetleri oluşturmak.
- Nesnelere özel doğrulama uygulamak.
- Bir DML işlemi gerçekleştirildiğinde özel apex mantığını yürütmek için.
- Mevcut iş akışı akışları ve süreç oluşturucuların işlevleri kullanılarak uygulanamayan işlevleri uygulamak.
- Kurmak e-posta hizmetleri, e-postaların içeriklerini, başlıklarını ve eklerini apex kodu kullanarak işlemeniz gerekiyor.
Apex'in Çalışma Yapısı
Şimdi bu Apex eğitiminde Apex'in çalışma yapısını öğreneceğiz:
Bir apex kodu için eylem akışı aşağıdaki gibidir:
- Geliştirici Eylemi: Bir geliştirici tarafından yazılan tüm apex kodu, geliştirici kodu platforma kaydettiğinde apex çalışma zamanı yorumlayıcısı tarafından anlaşılabilecek bir dizi talimat halinde derlenir ve bu talimatlar daha sonra platforma meta veri olarak kaydedilir.
- Son Kullanıcı Eylemi: Kullanıcı olayı bir apex kodunu çalıştırdığında, platform sunucusu meta verilerden derlenen talimatları alır ve sonucu döndürmeden önce bunları apex yorumlayıcısı aracılığıyla çalıştırır.
Apex Sözdizimi
Değişken Beyanı
Apex kesin olarak yazılan bir dil olduğundan, apex'te veri tipine sahip bir değişkenin bildirilmesi zorunludur.
Örneğin:
contact con = new contact();
burada con değişkeni veri türü olarak contact ile bildirilir.
SOQL Sorgusu
SOQL, Salesforce nesne sorgulama dili anlamına gelir. SOQL, Salesforce veritabanından sObject kayıtlarını almak için kullanılır. Örneğin-
Account acc = [select id, name from Account Limit 1];
Yukarıdaki sorgu, Salesforce veritabanından hesap kaydını getirir.
Döngü İfadesi
Döngü ifadesi bir listedeki kayıtlar üzerinde yineleme yapmak için kullanılır. Yineleme sayısı listedeki kayıt sayısına eşittir. Örneğin:
list<Account>listOfAccounts = [select id, name from account limit 100]; // iteration over the list of accounts for(Account acc : listOfAccounts){ //your logic }
Yukarıdaki kod parçacığında listOfAccounts, liste veri türünün bir değişkenidir.
Akış Kontrol Beyanı
Akış kontrolü ifadesi, kodun bazı satırlarını bazı koşullara göre yürütmek istediğinizde faydalıdır.
Örneğin:
list<Account>listOfAccounts = [select id, name from account limit 100]; // execute the logic if the size of the account list is greater than zero if(listOfAccounts.size() >0){ //your logic }
Yukarıdaki kod parçacığı veritabanından hesap kayıtlarını sorgulamak ve liste boyutunu kontrol etmektir.
DML bildirimi
DML, veri işleme dili anlamına gelir. DML ifadeleri, Salesforce veritabanındaki verileri değiştirmek için kullanılır. Örneğin -
Account acc = new Account(Name = ‘ Test Account’); Insert acc; //DML statement to create account record.
Apex Geliştirme Ortamı
Şimdi bu Apex programlama eğitiminde Apex Geliştirme Ortamı hakkında bilgi edineceğiz:
Apex kodu Salesforce'un hem sandbox hem de developer sürümünde geliştirilebilir.
Kodun deneme ortamında geliştirilip daha sonra üretim ortamına dağıtılması en iyi uygulamadır.
Apex kod geliştirme araçları: Aşağıda Salesforce'un tüm sürümlerinde Apex kodu geliştirmek için kullanılabilen üç araç bulunmaktadır.
- Force.com Geliştirici Konsolu
- Force.com IDE'si
- Salesforce Kullanıcı Arayüzünde Kod DüzenleyiciSiz
Apex'te Veri Türü
Apex tarafından desteklenen veri tipleri şunlardır:
Ilkel
Tamsayı, Double, Uzun, Tarih, Tarih Saat, Dize, Kimlik ve Boolean temel veri türleri olarak kabul edilir. Tüm temel veri türleri referansa göre değil değere göre iletilir.
Koleksiyonlar
Apex'te üç tür koleksiyon mevcuttur
- Liste: Endekslere dayalı olarak ilkellerin, sObject'lerin, koleksiyonların veya Apex nesnelerinin sıralı bir koleksiyonudur.
- Küme: Benzersiz ilkellerin sırasız bir koleksiyonu.
- Harita: İlkel öğeler, sObject'ler, koleksiyonlar veya Apex nesneleri olabilen tekli değerlerle eşlenen benzersiz, ilkel anahtarların koleksiyonudur.
nesne
Bu, Salesforce'taki özel bir veri türüdür. Bir tabloya benzer SQL ve SQL'deki sütunlara benzer alanlar içerir.
Sıralamalar
Enum, sonlu sayıda belirtilen tanımlayıcı kümesinin bir değerini saklayan soyut bir veri türüdür
Sınıflar
nesneler
Apex'te desteklenen herhangi bir veri türünü ifade eder.
Arayüzler
Apex Erişim Belirleyicisi
Apex tarafından desteklenen erişim belirteçleri şunlardır:
Açık Alan
Bu erişim belirticisi, bir ad alanı içindeki bir apex tarafından kullanılacak bir sınıfa, yönteme, değişkene erişim sağlar.
Özel Etkinlik
Bu erişim belirteci, yerel olarak veya kodun bölümü içinde kullanılacak bir sınıfa, yönteme, değişkene erişim sağlar, tanımlanır. Tanımlanmış herhangi bir erişim belirticisi olmayan tüm teknik, değişkenler, varsayılan erişim belirticisi olarak özeldir.
korumalı
Bu erişim belirticisi, Apex sınıfını tanımlayan herhangi bir iç sınıf tarafından kullanılacak bir değişken olan yönteme erişim sağlar.
Küresel
Bu erişim belirticisi, bir ad alanı içindeki ve ad alanının dışındaki bir apeks tarafından kullanılacak bir sınıfa, yönteme, değişkene erişim sağlar. Gerekli olmadıkça global anahtar kelimeyi kullanmamak en iyi uygulamadır.
Apex'teki Anahtar Kelimeler
Paylaşarak
Bu anahtar kelimeyle bir sınıf tanımlanmışsa, geçerli kullanıcıya uygulanan tüm paylaşım kuralları uygulanır ve bu anahtar kelime yoksa kod sistem bağlamı altında yürütülür.
Örneğin:
public with sharing class MyApexClass{ // sharing rules enforced when code in this class execute }
Paylaşmadan
Bu anahtar kelimeyle bir sınıf tanımlanmışsa, geçerli kullanıcıya uygulanan tüm paylaşım kuralları uygulanmaz.
Örneğin:
public without sharing class MyApexClass{ // sharing rules is not enforced when code in this class execute }
Statik
Statik anahtar kelimeyle tanımlanan Method değişkeni bir kez başlatılır ve sınıfla ilişkilendirilir. Statik değişkenler, yöntemler bir sınıfın örneğini oluşturmadan doğrudan sınıf adına göre çağrılabilir.
Son
Final anahtar sözcüğüyle tanımlanan bir sabit, Yöntem geçersiz kılınamaz. Örneğin:
public class myCls { static final Integer INT_CONST = 10; }
Bu INT_CONST değişkeninin değerini geçersiz kılmaya çalışırsanız, bir istisna elde edersiniz – System.FinalException: Final değişkeni zaten başlatıldı.
Dönüş
Bu anahtar kelime bir yöntemden bir değer döndürür. Örneğin:
public String getName() { return 'Test' ; }
Null
Boş bir sabiti tanımlar ve bir değişkene atanabilir. Örneğin
Boolean b = null;
Sanal
Bir sınıf sanal bir anahtar kelimeyle tanımlanmışsa genişletilebilir ve geçersiz kılınabilir.
Soyut
Bir sınıf abstract anahtar sözcüğüyle tanımlanmışsa, abstract anahtar sözcüğünü içeren en az bir yöntem içermeli ve bu yöntemin yalnızca bir imzası olmalıdır.
Örneğin
public abstract class MyAbstrtactClass { abstract Integer myAbstractMethod1(); }
Apex Dizisi
Bir dize, karakter sınırlaması olmayan bir karakter kümesidir. Örneğin:
String name = 'Test';
Salesforce'taki String sınıfı tarafından sağlanan birkaç yerleşik yöntem vardır. Aşağıda sık ve çoğunlukla kullanılan birkaç işlev yer almaktadır:
kısalt(maxWidth)
Bu yöntem bir dizeyi belirtilen uzunluğa keser ve verilen dizenin uzunluğu belirtilen uzunluktan daha uzunsa döndürür; aksi takdirde orijinal dizeyi döndürür. maxWidth değişkeninin değeri 4'ten azsa, bu yöntem bir çalışma zamanı istisnası döndürür – System.StringException: Minimum kısaltma genişliği 4'tür
Örneğin:
String s = 'Hello World'; String s2 = s.abbreviate(8); System.debug('s2'+s2); //Hello...
büyük harfle yazmak ()
Bu yöntem, bir dizenin ilk harfini başlık harfine dönüştürür ve onu döndürür.
Örneğin:
String s = 'hello; String s2 = s.capitalize(); System.assertEquals('Hello', s2);
içerir(alt dize)
Bu yöntem, yöntemi çağıran String belirtilen alt dizeyi içeriyorsa true değerini döndürür.
String name1 = 'test1'; String name2 = 'test2'; Boolean flag = name.contains(name2); System.debug('flag::',+flag); //true
eşittir(stringOrId)
Bu yöntem, iletilen parametre boş değilse ve yöntemi çağıran dizeyle aynı ikili karakter dizisini gösteriyorsa true değerini döndürür.
Id değerlerini karşılaştırırken ID'lerin uzunlukları eşit olmayabilir. Örneğin: 15 karakterlik kimliği temsil eden bir dize, 18 karakterlik kimliği temsil eden bir nesneyle karşılaştırılırsa bu yöntem true değerini döndürür. Örneğin:
Id idValue15 = '001D000000Ju1zH'; Id idValue18 = '001D000000Ju1zHIAR'; Boolean result4 = stringValue15.equals(IdValue18); System.debug('result4', +result4); //true
Yukarıdaki örnekte equals yöntemi, 15 karakterlik nesne kimliğini 18 karakterlik nesne kimliğiyle karşılaştırmaktadır ve bu kimliklerin her ikisi de aynı ikili diziyi temsil ediyorsa, true değerini döndürecektir.
Büyük/küçük harfe duyarlı karşılaştırmalar yapmak için bu yöntemi kullanın.
kaçışSingleQuotes(stringToEscape)
Bu yöntem, bir dizedeki herhangi bir tek tırnak işaretinin önüne bir kaçış karakteri (\) ekler ve onu döndürür. Bu yöntem, dinamik bir SOQL sorgusu oluştururken SOQL enjeksiyonunu önler. Bu yöntem, tüm tek tırnak işaretlerinin veritabanı komutları yerine çevreleyen dizeler olarak değerlendirilmesini sağlar.
Örneğin:
String s = 'Hello Tom'; system.debug(s); // Outputs 'Hello Tom' String escapedStr = String.escapeSingleQuotes(s); // Outputs \'Hello Tom\'
kaldır(alt dize)
Bu yöntem, söz konusu alt dizenin tüm oluşumlarını, yöntemi çağıran ve sonuç dizesini döndüren String'den kaldırır.
Örneğin
String s1 = 'Salesforce and force.com'; String s2 = s1.remove('force'); System.debug( 's2'+ s2);// 'Sales and .com'
alt dize(startIndex)
Bu yöntem, startIndex'teki karakterden başlayan ve dizenin sonuncusuna kadar uzanan bir alt dize döndürür.
Örneğin:
String s1 = 'hamburger'; String s2 = s1.substring(3); System.debug('s2'+s2); //burger
tersine çevirmek()
Bu Yöntem, bir dizenin tüm karakterlerini tersine çevirir ve onu döndürür. Örneğin:
String s = 'Hello'; String s2 = s.reverse(); System.debug('s2::::'+s2);// olleH // Hello
trim(): Bu yöntem, bir dizenin başındaki tüm beyaz boşlukları kaldırır ve onu döndürür.
valueOf(toConvert)
Bu yöntem, nesnede iletilen dize gösterimini döndürür.
Apex Valisi Sınırları
Apex düzenleyici sınırları, herhangi bir pist apex kodunun ve işleminin paylaşılan kaynakları kontrol etmemesini ve çoklu kiracı ortamındaki diğer kullanıcılar için işlemeyi ihlal etmemesini sağlamak için apex çalışma zamanı motoru tarafından uygulanan sınırlardır. Bu sınırlar her apex işlemine göre doğrulanır. Aşağıda, salesforce tarafından her apex işleminde tanımlanan düzenleyici sınırları verilmiştir:
Açıklama | Sınırlamak |
---|---|
Eşzamanlı bir işlemde yapılabilen SOQL sorguları | 100 |
Asenkron bir işlemde yapılabilen SOQL sorguları | 200 |
SOQL sorgusu tarafından alınabilecek kayıtlar | 50000 |
Database.getQueryLocator tarafından alınabilecek kayıtlar | 10000 |
Apex işleminde yapılabilecek SOSL sorguları | 20 |
SOSL sorgusu ile alınabilecek kayıtlar | 2000 |
Apex işleminde yapılabilecek DML ifadeleri | 150 |
DML ifadesi, Approval.process veya Database.emptyRecycleBin sonucunda işlenebilen kayıtlar | 10000 |
Apex işleminde yapılabilecek açıklamalar. | 100 |
Bir apex işleminde gerçekleştirilen tüm çağrılarda kümülatif zaman aşımı sınırı | 120 saniye |
System.enqueueJob ile kuyruğa eklenebilecek apex işlerinin sınırı | 50 |
Her Apex işlemi için yürütme süresi sınırı | 10 dakikadır. |
Apex sınıfında ve tetikleyicide kullanılabilecek karakterlerin sınırı | 1 milyon |
Eşzamanlı işlem için CPU zaman sınırı | Milisaniye 10,000 |
Asenkron işlem için CPU zaman sınırı | Milisaniye 60,000 |
Apex Getter ve Setter
Apex özelliği apex değişkenine benzer. Bir apex özelliği için alıcı ve ayarlayıcı gereklidir. Alıcı ve ayarlayıcı, özellik değerine erişilmeden veya değiştirilmeden önce kodu yürütmek için kullanılabilir. Get erişimcisindeki kod, bir özellik değeri okunduğunda yürütülür. Set erişimcisindeki kod, bir özellik değeri değiştirildiğinde çalışır. Get erişimcisine sahip olan herhangi bir özellik salt okunur olarak kabul edilir, set erişimcisine sahip olan herhangi bir özelliğin yalnızca yazdığı kabul edilir ve hem get hem de set erişimcisine sahip olan herhangi bir özellik okuma-yazma olarak kabul edilir. Bir apex özelliğinin sözdizimi:
public class myApexClass { // Property declaration access_modifierreturn_typeproperty_name { get { //code } set{ //code } }
Burada, erişim_modifier özelliğin erişim değiştiricisidir. return_type özelliğin dataType'ıdır. özellik_adı özelliğin adıdır.
Aşağıda hem get hem de set erişimcisine sahip bir apex özelliği örneği verilmiştir.
public class myApex{ public String name{ get{ return name;} set{ name = 'Test';} } }
Burada özellik adı name'dir ve bu genel bir özelliktir ve bir dataType dizesi döndürmektedir.
Get ve set bloğunda bazı kodların bulunması zorunlu değildir. Otomatik bir özelliği tanımlamak için bu blok boş bırakılabilir. Örneğin:
public double MyReadWriteProp{ get; set; }
Get ve set erişimcisi aynı zamanda erişim değiştiricileriyle de tanımlanabilir. Bir erişimci bir değiştiriciyle tanımlanmışsa, bu durumda özelliğin erişim değiştiricisini geçersiz kılar. Örneğin:
public String name{private get; set;}// name is private for read and public to write.
Apeks Sınıfı
Apex sınıfı, nesnelerin oluşturulduğu bir plan veya şablondur. Bir nesne bir sınıfın örneğidir.
Salesforce'ta apex sınıfları oluşturmanın üç yolu vardır:
Geliştirici Konsolu
Force.com IDE'si
Apex sınıfı ayrıntı sayfası.
Apex'te, üst düzey sınıf olarak da adlandırılan bir dış sınıf tanımlayabilir ve ayrıca iç sınıflar adı verilen bir dış sınıf içindeki sınıfları da tanımlayabilirsiniz.
Dış sınıfın bildiriminde global veya public gibi erişim değiştiricilerin kullanılması zorunludur.
İç sınıfların bildiriminde erişim değiştiricisinin kullanılması gerekli değildir.
Bir apex sınıfı, class anahtar sözcüğü ve ardından sınıf adı kullanılarak tanımlanır.
Extends anahtar sözcüğü, mevcut bir sınıfı bir apex sınıfına göre genişletmek için kullanılır ve apps anahtar sözcüğü, bir apex sınıfı tarafından bir arayüz uygulamak için kullanılır.
Salesforce Apex birden fazla mirası desteklemez; bir apex sınıfı yalnızca mevcut bir apex sınıfını genişletebilir ancak birden fazla arabirim uygulayabilir.
Bir apex sınıfı, kullanıcı tanımlı bir kurucu içerebilir ve kullanıcı tanımlı bir kurucu mevcut değilse, varsayılan bir kurucu kullanılır. Bir yapıcıdaki kod, bir sınıfın örneği oluşturulduğunda yürütülür.
Apex Sınıfı örneğinin söz dizimi:
public class myApexClass{ // variable declaration //constructor public myApexClass{ } //methods declaration }
New anahtar sözcüğü bir apex sınıfının örneğini oluşturmak için kullanılır. Aşağıda bir apex sınıfının örneğini oluşturmaya yönelik sözdizimi verilmiştir.
myApexClass obj = new myApexClass();
Apeks Tetikleyici
Apex tetikleyicileri, bir DML işlemi gerçekleştirilmeden önce ve sonra özel apex yürütmenizi sağlar.
Apex aşağıdaki iki tip tetikleyiciyi destekler:
Tetikleyicilerden önce: Bu tetikleyiciler, kayıt veritabanına kaydedilmeden önce alanın değerini doğrulamak ve güncellemek için kullanılır.
After Trigger'lar: Bu tetikleyiciler veritabanına kayıt işlendikten sonra sistem tarafından belirlenen alanlara (record ID, LastModifiedDate alanı) erişmek için kullanılır. Bu alanların değeri diğer kayıtları değiştirmek için kullanılabilir. Tetikleyicilerden sonra tetiklenen kayıtlar salt okunurdur.
Hacimli tetikleyiciler yazmak en iyi uygulamadır. Hacimli bir tetikleyici, tek bir kaydın yanı sıra aynı anda birden fazla kaydı işleyebilir.
Bir apeks tetikleyicisinin sözdizimi:
trigger TriggerName on ObjectName (trigger_events) { //Code_block }
Burada TriggerName tetikleyicinin adı, ObjectName tetikleyicinin yazılacağı nesnenin adı, tetik_events olayların virgülle ayrılmış listesidir.
Apex tetikleyicilerinin desteklediği olaylar şunlardır: eklemeden önce, güncellemeden önce, silmeden önce, eklemeden sonra, güncellemeden sonra, silmeden sonra, silmeyi geri aldıktan sonra.
Apex tetikleyicisinde statik anahtar kelimeler kullanılamaz. İç sınıflara uygulanabilir tüm anahtar kelimeler bir Apex tetikleyicisinde kullanılabilir.
Çalışma zamanı bağlamını döndüren her tetikleyicinin tanımladığı örtülü değişken vardır. Bu değişkenler sistemde tanımlanmıştır. Tetikleyici sınıf. Bu değişkenlere bağlam değişkenleri denir. Aşağıdaki ekran görüntüsü apex tetikleyicisi tarafından desteklenen bağlam değişkenini göstermektedir.
Aşağıda apex tetikleyicisindeki bağlam değişkeninin dikkate alınması yer almaktadır:
- DML işlemlerinde tetikleyici.new ve tetikleyici.old'u kullanmayın.
- Trigger.new silinemez.
- Trigger.new salt okunurdur.
- Trigger.new, yalnızca tetiklemeden önce aynı nesnedeki alanların değerlerini değiştirmek için kullanılabilir.
Aşağıdaki ekran görüntüleri, farklı tetikleyici olaylardaki belirli eylemlerle ilgili dikkat edilmesi gereken noktaları listelemektedir.
Apex'te Toplu Sınıf
Salesforce'taki Batch sınıfı, normal şekilde işlendiğinde apex regülatörü sınırlarını aşacak çok sayıda kaydı işlemek için kullanılır. Batch sınıfı, kodu eşzamansız olarak yürütür.
Toplu sınıfın avantajları şunlardır:
- Toplu sınıf, verileri parçalar halinde işler ve bir parça başarıyla işlenemezse, başarıyla işlenen tüm parçalar geri alınmaz.
- Bir toplu iş sınıfındaki her veri parçası, kodun regülatör yürütme limitleri dahilinde yürütülmesini sağlayan yeni bir regülatör limitleri seti ile işlenir.
- Veri tabanı. Toplu işlenebilir arayüzün toplu sınıf olarak kullanılabilmesi için bir apex sınıfı tarafından uygulanması gerekir. Toplu iş sınıfı tarafından uygulanması gereken üç yöntem sağlar.
Aşağıda Veritabanı tarafından sağlanan üç yöntem bulunmaktadır. Toplu arayüz:
1.başlangıç()
Bu yöntem, arayüz yöntemi execute tarafından işlenecek kayıtların veya nesnelerin kapsamını oluşturur. Batch'in yürütülmesi sırasında yalnızca bir kez çağrılır. Bu yöntem, bir Database.QueryLocator nesnesi veya bir Iterable döndürür. Database.QueryLocator nesnesini kullanarak SQL sorgusu tarafından alınan kayıt sayısı 50 milyon kayıttır ancak bir iterable kullanılarak SQL sorgusu tarafından alınabilecek toplam kayıt sayısı yalnızca 50000'dir. Iterable, batch sınıfı için karmaşık kapsam oluşturmak için kullanılır.
Başlatma yönteminin sözdizimi:
global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) {}
2.yürüt()
Bu yöntem her bir veri yığınının işlenmesi için kullanılır. Her kayıt yığını için yürütme yöntemi çağrılır. Yürütme için varsayılan toplu iş boyutu 200 kayıttır. Execute yöntemi iki argüman alır:
Database.BatchableContext nesnesine bir başvuru,
List gibi sObject'lerin listesi veya parametreli türlerin bir listesi. Yürütme yönteminin sözdizimi:
global void execute(Database.BatchableContext BC, list<P>){}
3.bitir()
Finish yöntemi, toplu sınıfın yürütülmesi sırasında bir kez çağrılır. Finish yönteminde son işlem işlemleri gerçekleştirilebilir. Örneğin: onay e-postasını gönderme. Bu yöntem, tüm toplu iş işlendiğinde çağrılır. Finish yönteminin sözdizimi:
global void finish(Database.BatchableContext BC){}
Database.BatchableContext nesnesi
Veritabanının her yöntemi. Batchable arayüzünün Database.BatchableContext nesnesine bir referansı vardır.
Bu nesne toplu işin ilerlemesini izlemek için kullanılır.
BatchableContext tarafından sağlanan örnek yöntemler şunlardır:
- getChildJobId(): Bu yöntem, o anda işlenmekte olan bir toplu işin kimliğini döndürür.
- getJobId(): Bu yöntem toplu işin kimliğini döndürür.
Aşağıda bir toplu iş sınıfının sözdizimi verilmiştir:
global class MyBatchClass implements Database.Batchable<sObject> { global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) { // collect the batches of records or objects to be passed to execute } global void execute(Database.BatchableContextbc, List<P> records){ // process each batch of records } global void finish(Database.BatchableContextbc){ // execute any post-processing operations } }
Database.executeBatch Yöntem
Database.executeBatch yöntemi bir toplu iş sınıfını yürütmek için kullanılır.
Bu yöntem iki parametre alır: İşlenecek toplu iş sınıfının örneği, toplu iş boyutunu belirtmek için Seçenekler parametresi belirtilmemişse varsayılan boyut olan 200'ü alır.
Database.executeBatch'in sözdizimi:
Database.executeBatch(myBatchObject,scope)
MyBatchClass toplu sınıf adı yürütülüyor:
MyBatchClassmyBatchObject = new MyBatchClass(); Id batchId = Database.executeBatch(myBatchObject,100);
Veritabanı.durum bilgisi olan
Batch sınıfı varsayılan olarak durum bilgisizdir. Yürütme yöntemi her çağrıldığında, bir nesnenin yeni bir kopyası alınır, sınıfın tüm değişkenleri başlatılır.
Database.stateful, bir toplu iş sınıfını durum bilgisi olan hale getirmek için uygulanır.
Toplu sınıfınız uyguladıysa veritabanı , durum bilgisi olan arayüzde tüm örnek değişkenler değerlerini korur, ancak statik değişkenler işlem arasında sıfırlanır.
ÖZET
- Apex güçlü bir şekilde yazılmış, nesne yönelimli bir yazılımdır. Programlama dili Force.com platformunda derlenen ve çalıştırılan
- Apex programlama dili büyük/küçük harfe duyarlı olmayan bir dildir
- Apex'te iki tür eylem akışı vardır: 1) Geliştirici eylemi 2) Son kullanıcı eylemi
- Apex, Salesforce'u diğer uygulamalarla entegre eden web hizmetleri oluşturmanıza yardımcı olur.
- Apex tarafından desteklenen veri türleri şunlardır: 1).İlkel 2) Koleksiyonlar 3) sObject, Enums, 4) Sınıflar, 5) Nesneler ve Arayüzler
- Genel, Özel, Korumalı ve Global, Apex tarafından belirtilen destektir
- Apex'te kullanılan anahtar kelimeler şunlardır: 1) Paylaşımlı, 2) Paylaşımsız, 3) Statik, 4) Final 5)Return, 6)Null, 7) Virtual, 8) Abstract
- Bir dize, karakter sınırlaması olmayan bir karakter kümesidir
- Apex regülatörü sınırları, herhangi bir pist apex kodunun ve işleminin
- Alıcı ve ayarlayıcı, özellik değerine erişilmeden veya değiştirilmeden önce kodu yürütmek için kullanılabilir
- Salesforce'ta apex sınıfları oluşturmanın üç yolu vardır: 1)Geliştirici Konsolu 2)Force.com IDE ve 3) Apex sınıfı ayrıntı sayfası.
- Apex tetikleyicileri, bir DML işlemi gerçekleştirilmeden önce ve sonra özel apex yürütmenizi sağlar.
- Salesforce'taki toplu iş sınıfı, normal şekilde işlenmesi durumunda apeks düzenleyici sınırlarını aşacak çok sayıda kaydı işlemek için kullanılır.