Özel Nesneler
28 dilde daha mevcut
English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

Data Architect kursunun 3. bölümü olan Salesforce Veri Mimarisi bölümündeki 10 modülden 3.‘sü. Her modül kendi başına okunabilir. Önceki: Ana Gemiye Bakın: Standart Veri Modelleri · Sonraki: Bu Veri Nerede Yaşıyor?
Bu modülün yanıtladığı soru: Salesforce’ta yoksa, kendi nesnenizi oluşturduğunuzda gerçekte ne elde edersiniz?
Geçen modülde Salesforce’un zaten inşa ettiklerine baktık. Bazen ihtiyacınız olan şey orada yoktur. Steve Trucking kamyon işletir ve standart bir Kamyon nesnesi yoktur. Bu yüzden bir tane oluşturursunuz: bir özel nesne.
Bu modülde görmenizi istediğim şey şu. Bir özel nesne, 1. modüldeki her şey gibi meta veride oluşturulur ve var olduğu anda bir dizi standart işlevle birlikte gelir. Boş bir tablo değildir. Ve onu oluşturmak için doldurduğunuz ekran, fark etseniz de etmeseniz de size mimari sorular sorar.
Yeni Özel Nesne Ekranı
Bölüm başlığı “Yeni Özel Nesne Ekranı ”Setup → Object Manager → Create → Custom Object (Kurulum → Nesne Yöneticisi → Oluştur → Özel Nesne) yoluna gidin, karşınıza uzun tek bir form çıkar. Çoğu insan ilk iki kutuyu doldurur ve Kaydet’e tıklar. Yavaşlayalım ve onu okuyalım.
Label ve Plural Label (Etiket ve Çoğul Etiket). “Truck” ve “Trucks”. Kullanıcıların sekmelerde, sayfa düzenlerinde ve raporlarda gördükleri bunlardır. Onları sonradan pek zahmet çekmeden değiştirebilirsiniz.
Object Name (Nesne Adı). Bu farklıdır: kodun, entegrasyonların, raporların ve artık ajanların kullandığı ad olan API adıdır. “Truck” yazın, Salesforce onu Truck__c yapar. Sonradan değiştirmek ona başvuran her şeyi bulmak demektir; bu da yine 1. bölümdeki Tersinirlik Testi’dir. Bunu ilk seferde doğru yapın.
Description (Açıklama). Doldurun. Her seferinde. 1. modülde meta verinin artık süs olmadığını söyledim: bir sonraki yönetici bunu okur, org’unuzu anlamaya çalışan her yapay zekâ aracı da. Açıklaması boş bir özel nesne, üzerinde etiket olmayan bir kutudur.
Record Name (Kayıt Adı). Her özel nesnenin bir Name alanı vardır ve onun ne olacağına burada karar verirsiniz. “Truck 117” gibi bir Text (Metin) adı ya da Salesforce’un sizin için doldurduğu T-000184 gibi bir Otomatik Numara. O ekrandaki uyarıyı okuyun: API üzerinden yüksek hacimde kayıt eklemeyi planlıyorsanız Salesforce size Text kullanmanızı söyler. Bu, daha tek bir kayıt oluşturmadan platformun size ölçek hakkında bir şey söylemesidir.

Salesforce Kurulum, Yeni Özel Nesne: uyarısıyla birlikte Record Name bölümü (ekran görüntüsü, 2026-10-12). Tam boyut
Optional Features (İsteğe Bağlı Özellikler). Allow Reports, Allow Activities, Track Field History, Allow in Chatter Groups. Varsayılan olarak kapalıdır. Her biri bu nesne için açtığınız bir yetenektir; bilerek karar verin.
Object Classification (Nesne Sınıflandırması). Allow Sharing, Allow Bulk API Access, Allow Streaming API Access; hepsi varsayılan olarak açıktır. Ekran bunu açıkça söyler: bunlar açıkken nesne bir Enterprise Application nesnesidir; kapalıyken bir Light Application nesnesidir. Bu adlar Salesforce’un uygulama aboneliği lisanslarıyla örtüşür: bir Lightning Platform Light App’te kayıt düzeyinde paylaşım yoktur ve Bulk API ya da Streaming API kullanamaz, bir Enterprise App ise kullanabilir. Tavsiyem: neden kapatmanız gerektiğini tam olarak bilmiyorsanız açık bırakın. Sonradan yüksek hacimde yükleyeceğiniz bir nesnede Bulk API erişimini kapatın, neden önemli olduğunu öğrenirsiniz.
Deployment Status ve Search (Dağıtım Durumu ve Arama). “In Development”, siz onu inşa ederken nesneyi kullanıcılardan gizler; “Deployed” onu canlıya alır. Ve Allow Search varsayılan olarak kapalıdır, yani siz açana kadar kullanıcılar bu kayıtları genel aramada bulamaz. Bu her seferinde insanları yakalar.

Varsayılanlar: üç API ayarı açık, Deployed ve Allow Search kapalı (ekran görüntüsü, 2026-10-12). Tam boyut
Kaydet’e tıklayın, Nesne Yöneticisi size nesneyi gösterir: API adı Truck__c, Custom işaretli, etiketler, dağıtım durumu. Ama sol tarafa bakın: Fields & Relationships, Page Layouts, Lightning Record Pages, Record Types, Validation Rules, Triggers, Flow Triggers, Object Access, Field Access. O liste, 1. modülün görünür halidir. Bir nesne yalnızca depolama değildir; tüm bu davranışın asıldığı yerdir.

Nesne Yöneticisi, Truck: API adı Truck__c, Custom ve bir nesneye bağlı her şey (ekran görüntüsü, 2026-10-12). Tam boyut
Sizin Oluşturmadığınız Alanlar
Bölüm başlığı “Sizin Oluşturmadığınız Alanlar ”Yepyeni bir özel nesnede Fields & Relationships’i açın; zaten alanları vardır. Her özel nesne standart bir set alır:
- Name, az önce seçtiğiniz kayıt adı; sayfa düzenlerinde, ilgili listelerde, arama ilişkilerinde ve arama sonuçlarında kullanılır.
- Owner, kaydın sahibi olan kullanıcı ya da kuyruk.
- Created By ve Last Modified By, onu oluşturan ve en son değiştiren kullanıcılar.
- Çoklu para birimi açıksa Currency, org’unuz bölümler (division) kullanıyorsa Division.
Ve altta, 1. modüldeki kayıt kimliği ile oluşturma ve değiştirme tarihleri. Data Loader ile birkaç kaydı dışa aktarın, hepsini görürsünüz.
Bunlardan biri kaybolabilir. Özel nesnenizi bir ana-ayrıntı ilişkisinin ayrıntı tarafı yapın, Owner alanı ortadan kalkar: sahiplik bunun yerine ana kayıttan gelir. Bu göründüğünden büyük bir meseledir; 7. ve 8. modüllerde ona döneceğiz.
Önekler ve Sonekler: Neye Bakıyorsunuz
Bölüm başlığı “Önekler ve Sonekler: Neye Bakıyorsunuz ”Geçen modülde standart nesnelerin öneki de soneki de olmadığını söyledim. Diğer her şeyin vardır ve onları okuyabildiğinizde bir alan listesi size tam olarak neye baktığınızı söyler.
| Neye benziyor | Ne olduğu |
|---|---|
Account, Case | Standart bir nesne ya da alan: önek yok, sonek yok |
Truck__c | Bir özel nesne ya da Unit_Number__c gibi bir özel alan |
abc__Inspection__c | Bir yönetilen paketten gelen özel nesne: abc satıcının ad alanıdır (namespace) |
Delivery_History__b | Bir büyük nesne (4. modül) |
Shipment__x | Bir harici nesne: veri başka bir sistemde yaşar (4. modül) |
Allergies__pc | Bir kişi hesabındaki özel kişi alanı (2. modül) |
Truck__r | Bir sorguda izlediğinizde, özel bir arama ilişkisinin arkasındaki ilişki |
Dikkat edilecek birkaç şey.
Buraya kadar bu bir liste. Ben bunu katmanlar olarak öğretirim. Üç tür nesne vardır: standart, özel ve yönetilen paket; ve her birinin üzerinde aynı tür alanlar olabilir: birlikte geldiği standart alanlar ve birinin eklediği özel alanlar.
Standart nesneler. Account’un öneki de soneki de yoktur, standart alanlarının da: Name, Industry, OwnerId. Çoğu standart nesneye özel alan ekleyebilirsiniz ve eklediğiniz her biri __c ile biter: Region__c (Custom Fields (opens in a new tab)). Sizi güvende tutan bu sonektir. Salesforce sürümlerinde Account’a yeni standart alanlar ekler ve sizinkiler her zaman __c ile bittiği, onlarınkiler ise asla bitmediği için gelecekteki bir standart alan zaten sahip olduğunuz bir alanla asla çakışamaz.
Özel nesneler. Kendi nesneniz __c ile biter, Truck__c (Custom Objects (opens in a new tab)); üzerine koyduğunuz özel alanlar da: Unit_Number__c. Ama birlikte doğduğu alanlar, yani geçen bölümdekiler, standart alanlardır: Name, OwnerId, CreatedDate, sonek yok. Yani kendi nesnenizde bile sonek, her alanı kimin yaptığını söyler.
Yönetilen paket nesneleri. AppExchange’ten bir yönetilen paket kurduğunuzda, nesneleri ve alanları satıcının ad alanı önekiyle (namespace prefix) gelir: abc__Inspection__c ve abc__Result__c gibi alanlar. Bu önek satıcıya özgüdür ve değişmez (Namespace Prefix (opens in a new tab)). Salesforce’un kendi ifadesiyle önek, her bileşeni benzersiz kılmak için ona eklenir: name__c, prefix__name__c olur (AppExchange Object Prefixes and the API (opens in a new tab)). Böylece iki satıcı da Invoice__c adlı bir nesne sunabilir ve ne birbirleriyle ne de sizinle asla çakışmaz. Paketin nesnelerinin hâlâ standart alanları vardır, Name ve OwnerId, öneksiz. Bir paket standart nesnelere de kendi önekli alanlarını ekleyebilir, örneğin Account’ta abc__Score__c. Ve siz de bir paketin nesnelerine kendi özel alanlarınızı ekleyebilirsiniz: abc__Inspection__c üzerindeki Depot__c sizin __c sonekinizi alır, ama satıcının önekini asla almaz, çünkü onu onlar değil siz yaptınız (Known Issue: unmanaged custom field on a managed package object (opens in a new tab)).
Herhangi bir API adını okuyun, onu kimin yaptığını bilirsiniz. Sonek yok: Salesforce. Öneksiz __c: sizin org’unuz. Önde abc__: satıcı. Bu, her değişiklik planladığınızda önemlidir. Sizin olanı değiştirebilirsiniz. Salesforce’un olanı yapılandırır ve genişletirsiniz. Satıcının olanı ise büyük ölçüde kilitlidir: sayfa düzenleri ve yardım metni gibi birkaç şeyi düzenleyebilirsiniz, ama paketin çoğu ve her API adı satıcıya aittir ve onların yükseltmeleri onların değişikliklerini getirir (Editable Properties After Package Promotion or Installation (opens in a new tab)).
Yönetilmeyen paketlerde önek olmaz. Yönetilmeyen bir paket kurun, nesneleri org’unuza sanki onları kendiniz inşa etmişsiniz gibi, öneksiz olarak iner. Bir Truck__c getiriyorsa ve sizde zaten bir tane varsa, bir ad çakışmanız var demektir. Kurmadan önce kontrol edin.
Yalnızca Salesforce’ta Olmayanı İnşa Edin
Bölüm başlığı “Yalnızca Salesforce’ta Olmayanı İnşa Edin ”Bir özel nesne oluşturmak kolaydır; bence çok fazla oluşturmamızın nedeni de tam olarak budur. Yeni Özel Nesne ekranı, zaten Account’u olan bir org’da size seve seve bir Customer__c yapar. Bu yüzden tıklamadan önce geçen modüldeki soruyu sorun: ana gemide bu zaten var mı? Varsa onu kullanın. Yoksa inşa edin ve tüm ekranı bir mimar gibi doldurun.
Sonraki modül daha da önceki bir soruyu soruyor: bu veri hiç Salesforce’ta olmalı mı?
Mimarın Burada Karar Verdikleri
Bölüm başlığı “Mimarın Burada Karar Verdikleri ”- Özel bir nesne oluşturmadan önce Salesforce’ta bunun için zaten standart bir nesne olup olmadığı.
- Bir kez seçilen API adı ve insanlar ile makineler için yazılmış bir açıklama.
- Kayıt adı: beklediğiniz hacmi akılda tutarak Text mi, Otomatik Numara mı.
- Hangi isteğe bağlı özelliklerin, API erişiminin ve aramanın bilerek açılacağı.
- Bir org’daki soneklerin size ne söylediği: özel, yönetilen, büyük, harici, kişi hesabı.
- Kurmak üzere olduğunuz bir paketin inşa ettiklerinizle çakışıp çakışamayacağı.
Daha Fazlası
Bölüm başlığı “Daha Fazlası ”- Custom Objects (opens in a new tab) ve Custom Fields (opens in a new tab), Object Reference (İngilizce, kontrol tarihi 2026-10-13): “özel nesnelerin adları, iki alt çizgi ve ardından küçük harf bir ‘c’den oluşan bir sonek içerir”; aynısı özel alanlar için de geçerli; ve özel alanları destekleyen standart nesnelerin tablosu.
- AppExchange Object Prefixes and the API (opens in a new tab), Object Reference (İngilizce, kontrol tarihi 2026-10-13): bir ad alanı öneki, paketlenmiş her bileşeni benzersiz kılar; “name__c, prefix__name__c olur”.
- Namespace Prefix (opens in a new tab), Apex Developer Guide (İngilizce, kontrol tarihi 2026-10-13): ad alanı önekleri, yönetilen paketlerin nesne ve alan adlarını diğer org’larınkinden ayrı tutar.
- Editable Properties After Package Promotion or Installation (opens in a new tab), Second-Generation Managed Packaging Developer Guide (İngilizce, kontrol tarihi 2026-10-13): bir paketin bileşenlerinin hangi özelliklerini geliştiricinin, abonenin, ikisinin ya da hiçbirinin düzenleyebileceği.
- Custom Object Standard Fields (opens in a new tab), Salesforce Help (İngilizce, kontrol tarihi 2026-10-12): her özel nesnenin aldığı standart alanlar (Name, Owner, Created By, Last Modified By, Currency, Division) ve Owner’ın bir ana-ayrıntı ilişkisinin ayrıntı tarafında neden kaldırıldığı.
- Standard User Licenses (opens in a new tab), Salesforce Help (İngilizce, kontrol tarihi 2026-10-12): bir Lightning Platform Light App “Bulk API’yi veya Streaming API’yi kullanamaz”; bir Enterprise App “kayıt düzeyinde paylaşımı destekler, Bulk API’yi ve Streaming API’yi kullanabilir.”
