Apex - Genel Bakış
Apex nedir?
Apex, Salesforce.com tarafından geliştirilmiş özel bir dildir. Resmi tanıma göre Apex, geliştiricilerin Force.com platform sunucusunda Force.com API'ye yapılan çağrılarla birlikte akış ve işlem kontrol ifadelerini yürütmesine olanak tanıyan, güçlü bir şekilde yazılmış, nesne yönelimli bir programlama dilidir.
Java benzeri bir sözdizimine sahiptir ve veritabanında depolanan prosedürler gibi davranır. Geliştiricilerin, düğme tıklamaları, ilgili kayıt güncellemeleri ve Visualforce dahil olmak üzere çoğu sistem olayına iş mantığı eklemesini sağlar.pages.Apexkod, Web hizmeti talepleri tarafından ve nesneler üzerindeki tetikleyicilerden başlatılabilir. Apex; Performance Edition, Unlimited Edition, Enterprise Edition ve Developer Edition'a dahildir.
Apex'in Dil Olarak Özellikleri
Şimdi Apex'in bir Dil olarak özelliklerini tartışalım -
Birleşik
Apex, INSERT, UPDATE, DELETE ve ayrıca DML İstisna işleme gibi DML işlemleri için yerleşik desteğe sahiptir. Satır içi SOQL ve sObject kayıtları kümesini döndüren SOSL sorgu işleme desteği vardır. Sonraki bölümlerde sObject, SOQL, SOSL'yi detaylı olarak inceleyeceğiz.
Java benzeri sözdizimi ve kullanımı kolay
Apex, Java gibi sözdizimini kullandığından kullanımı kolaydır. Örneğin, değişken bildirimi, döngü sözdizimi ve koşullu ifadeler.
Verilerle Güçlü Bir Şekilde Entegre Edilir
Apex, veri odaklıdır ve birden çok sorgu ve DML ifadesini birlikte yürütmek için tasarlanmıştır. Veritabanında birden çok işlem bildirimi yayınlar.
Kesinlikle Yazılmış
Apex, güçlü bir şekilde yazılmış bir dildir. SObject gibi şema nesnelerine doğrudan başvuru kullanır ve herhangi bir geçersiz başvuru, silinirse veya yanlış veri türündeyse hızla başarısız olur.
Çok Kiracılı Ortam
Apex, çok kiracılı bir ortamda çalışır. Sonuç olarak, Apex çalışma zamanı motoru, kontrolsüz koda karşı yakından korunmak ve paylaşılan kaynakları tekeline almasını önlemek için tasarlanmıştır. Sınırları ihlal eden herhangi bir kod, anlaşılması kolay hata mesajlarıyla başarısız olur.
Otomatik Olarak Yükseltme
Apex, Salesforce sürümlerinin bir parçası olarak yükseltildi. Manuel olarak yükseltmemize gerek yok.
Kolay Test
Apex, ne kadar kodun kapsandığını ve kodunuzun hangi bölümlerinin daha verimli olabileceğini gösteren test sonuçları dahil olmak üzere birim testi oluşturma ve yürütme için yerleşik destek sağlar.
Geliştirici Ne Zaman Apex'i Seçmelidir?
Önceden oluşturulmuş ve kullanıma hazır işlevsellikleri kullanarak karmaşık iş işlevlerini uygulayamadığımızda Apex kullanılmalıdır. Salesforce yapılandırması üzerinden apex kullanmamız gereken durumlar aşağıdadır.
Apex Uygulamaları
Apex'i istediğimizde kullanabiliriz -
Diğer sistemleri entegre ederek Web hizmetleri oluşturun.
E-posta patlaması veya e-posta kurulumu için e-posta hizmetleri oluşturun.
Aynı anda birden çok nesne üzerinde karmaşık doğrulama ve ayrıca özel doğrulama uygulaması gerçekleştirin.
Mevcut iş akışı işlevselliği veya akışları tarafından desteklenmeyen karmaşık iş süreçleri oluşturun.
Kayıtları güncellemek için Veritabanı yöntemlerini kullanmak gibi özel işlem mantığı (yalnızca tek bir kayıt veya nesne ile değil, tüm işlem boyunca oluşan mantık) oluşturun.
Bir kayıt değiştirildiğinde bir mantık uygulayın veya tetikleyicinin çalışmasına neden olan bir olay olduğunda ilgili nesnenin kaydını değiştirin.
Apex'in Çalışma Yapısı
Aşağıdaki şemada gösterildiği gibi (Referans: Salesforce Geliştirici Belgeleri), Apex tamamen talep edilen Force.com Platformunda çalışır
Eylem Akışı
Geliştirici kodu kaydettiğinde ve bir son kullanıcı aşağıda gösterildiği gibi Apex kodunu çağıran bir eylem gerçekleştirdiğinde iki eylem dizisi vardır -
Geliştirici Eylemi
Bir geliştirici, Apex kodunu platforma yazıp kaydettiğinde, platform uygulama sunucusu ilk olarak kodu Apex çalışma zamanı yorumlayıcısı tarafından anlaşılabilen bir dizi talimat halinde derler ve ardından bu talimatları meta veri olarak kaydeder.
Son Kullanıcı İşlemi
Bir son kullanıcı, bir düğmeye tıklayarak veya bir Visualforce sayfasına erişerek Apex'in yürütülmesini tetiklediğinde, platform uygulama sunucusu derlenmiş talimatları meta verilerden alır ve sonucu döndürmeden önce çalışma zamanı yorumlayıcısı aracılığıyla gönderir. Son kullanıcı, standart uygulama platformu talebiyle karşılaştırıldığında yürütme süresinde hiçbir farklılık gözlemlemez.
Apex, Salesforce.com'un tescilli dili olduğundan, genel bir programlama dilinin yaptığı bazı özellikleri desteklemez. Aşağıda, Apex'in desteklemediği birkaç özellik verilmiştir -
Kullanıcı Arayüzündeki öğeleri gösteremez.
Standart SFDC tarafından sağlanan işlevselliği değiştiremezsiniz ve ayrıca standart işlevselliğin yürütülmesini engellemek mümkün değildir.
Başka dillerde de yapabildiğimiz için birden fazla iş parçacığı oluşturmak da mümkün değildir.
Apex Sözdizimini Anlamak
Apex kodu tipik olarak diğer programlama dillerinden aşina olabileceğimiz birçok şeyi içerir.
Değişken Beyanı
Kesin yazılmış bir dil olarak, Apex'teki her değişkeni veri türü ile bildirmelisiniz. Aşağıdaki kodda görüldüğü gibi (aşağıdaki ekran görüntüsü), lstAcc, Veri türü ile Hesap Listesi olarak bildirilir.
SOQL Sorgusu
Bu, Salesforce veritabanından verileri almak için kullanılacaktır. Aşağıdaki ekran görüntüsünde gösterilen sorgu, Hesap nesnesinden veri alıyor.
Döngü İfadesi
Bu döngü deyimi, bir liste üzerinde yineleme yapmak veya belirli bir sayıda kod parçası üzerinde yineleme yapmak için kullanılır. Aşağıdaki ekran görüntüsünde gösterilen kodda yineleme, sahip olduğumuz kayıt sayısı ile aynı olacaktır.
Akış Kontrol Beyanı
If deyimi, bu kodda akış denetimi için kullanılır. Belirli koşullara bağlı olarak, belirli bir kod parçasının yürütülmesine veya yürütülmesinin durdurulmasına karar verilir. Örneğin aşağıda gösterilen kodda listenin boş olup olmadığını veya kayıt içerip içermediğini kontrol etmektedir.
DML İfadesi
Veritabanındaki kayıtlar üzerinde kayıt ekleme, güncelleme, yükseltme, silme işlemlerini gerçekleştirir. Örneğin, aşağıda verilen kod, Hesapların yeni alan değeri ile güncellenmesine yardımcı olur.
Aşağıda, bir Apex kod parçacığının nasıl görüneceğine dair bir örnek verilmiştir. Bu eğitimde tüm bu Apex programlama kavramlarını daha ayrıntılı olarak inceleyeceğiz.