Vlastní objekty
Tämä sisältö ei ole vielä saatavilla valitsemallasi kielellä.
K dispozici také v 29 jazycích
English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

Modul 3 z 10 kapitoly Datová architektura Salesforce, kapitoly 3 kurzu Data Architect. Každý modul stojí sám o sobě. Předchozí: Dívejte se na mateřskou loď: standardní datové modely · Další: Kde tato data žijí?
Otázka, na kterou tento modul odpovídá: Když to Salesforce nemá, co doopravdy dostanete, když si postavíte vlastní objekt?
V minulém modulu jsme se podívali, co už Salesforce postavil. Někdy nemá, co potřebujete. Steve Trucking provozuje kamiony a standardní objekt Truck neexistuje. Postavíte si tedy jeden: vlastní objekt (custom object).
Tady je, co chci, abyste v tomto modulu viděli. Vlastní objekt se vytváří v metadatech, jako všechno ostatní z modulu 1, a ve chvíli, kdy existuje, přichází se sadou standardních funkcí. Není to prázdná tabulka. A obrazovka, kterou při jeho vytváření vyplňujete, se vás ptá na architektonické otázky, ať si toho všimnete, nebo ne.
Obrazovka New Custom Object
Section titled “Obrazovka New Custom Object ”Jděte do Setup → Object Manager → Create → Custom Object a dostanete jeden dlouhý formulář. Většina lidí vyplní první dvě políčka a klikne na Save. Zpomalme a přečtěme si ho.
Label a Plural Label. „Truck“ a „Trucks“. To vidí uživatelé, na kartách, v rozvržení stránek a v sestavách. Později je můžete změnit bez velké bolesti.
Object Name. Tohle je jiné: je to název API, název, který používá kód, integrace, sestavy a teď i agenti. Napište „Truck“ a Salesforce z toho udělá Truck__c. Pozdější změna znamená najít všechno, co na něj odkazuje, což je zase test vratnosti z kapitoly 1. Tohle napoprvé trefte.
Description. Vyplňte ho. Pokaždé. V modulu 1 jsem řekl, že metadata už nejsou ozdoba: další administrátor si tohle přečte, stejně jako každý nástroj AI, který se snaží váš org pochopit. Vlastní objekt s prázdným popisem je krabice bez štítku.
Record Name. Každý vlastní objekt má pole Name a tady rozhodujete, co to je. Název typu Text, třeba „Truck 117“, nebo Auto Number, třeba T-000184, které vyplní Salesforce za vás. Přečtěte si varování na té obrazovce: pokud plánujete vkládat přes API velké objemy záznamů, Salesforce vám říká, ať použijete Text. To vám platforma říká něco o měřítku dřív, než vytvoříte jediný záznam.

Salesforce Setup, New Custom Object: část Record Name s jejím varováním (snímek obrazovky, 2026-10-12). Plná velikost
Optional Features. Allow Reports, Allow Activities, Track Field History, Allow in Chatter Groups. Ve výchozím stavu vypnuté. Každá je schopnost, kterou pro tento objekt zapínáte; rozhodujte záměrně.
Object Classification. Allow Sharing, Allow Bulk API Access, Allow Streaming API Access, všechny ve výchozím stavu zapnuté. Obrazovka to říká na rovinu: se zapnutými je objekt objektem Enterprise Application; s vypnutými je to objekt Light Application. Tyto názvy odpovídají licencím předplatného aplikací Salesforce: Lightning Platform Light App nemá sdílení na úrovni záznamů a nemůže používat Bulk API ani Streaming API, Enterprise App může. Moje rada: nechte je zapnuté, pokud přesně nevíte, proč ne. Vypněte přístup k Bulk API u objektu, do kterého budete později nahrávat ve velkém, a zjistíte, proč na tom záleželo.
Deployment Status a Search. „In Development“ objekt skryje před uživateli, dokud ho stavíte; „Deployed“ ho zpřístupní. A Allow Search je ve výchozím stavu vypnuté, takže uživatelé tyto záznamy v globálním vyhledávání nenajdou, dokud ho nezapnete. Tohle lidi chytí pokaždé.

Výchozí stav: tři nastavení API zapnutá, Deployed a Allow Search vypnuté (snímek obrazovky, 2026-10-12). Plná velikost
Klikněte na Save a Object Manager vám objekt ukáže: název API Truck__c, zaškrtnuté Custom, popisky, stav nasazení. Podívejte se ale dolů po levé straně: Fields & Relationships, Page Layouts, Lightning Record Pages, Record Types, Validation Rules, Triggers, Flow Triggers, Object Access, Field Access. Ten seznam je modul 1 zviditelněný. Objekt není jen úložiště; je to místo, na kterém visí všechno to chování.

Object Manager, Truck: název API Truck__c, Custom a všechno, co na objektu visí (snímek obrazovky, 2026-10-12). Plná velikost
Pole, která jste nevytvořili
Section titled “Pole, která jste nevytvořili ”Otevřete Fields & Relationships u úplně nového vlastního objektu a už má pole. Každý vlastní objekt dostane standardní sadu:
- Name, název záznamu, který jste právě zvolili, používaný v rozvržení stránek, seznamech souvisejících záznamů, lookupech a výsledcích vyhledávání.
- Owner, uživatel nebo fronta, která záznam vlastní.
- Created By a Last Modified By, uživatelé, kteří ho vytvořili a naposledy změnili.
- Currency, pokud jsou zapnuté více měn, a Division, pokud váš org používá divize.
A pod tím ID záznamu z modulu 1 a data vytvoření a změny. Vyexportujte pár záznamů v Data Loaderu a uvidíte je všechny.
Jedno z nich může zmizet. Udělejte ze svého vlastního objektu podřízenou stranu vztahu master-detail a pole Owner zmizí: vlastnictví pak pochází z hlavního záznamu. Je to větší věc, než zní, a vrátíme se k ní v modulech 7 a 8.
Předpony a přípony: na co se díváte
Section titled “Předpony a přípony: na co se díváte ”V minulém modulu jsem řekl, že standardní objekty nemají předponu ani příponu. Všechno ostatní je má, a jakmile je umíte číst, seznam polí vám přesně řekne, na co se díváte.
| Jak to vypadá | Co to je |
|---|---|
Account, Case | Standardní objekt nebo pole: žádná předpona, žádná přípona |
Truck__c | Vlastní objekt, nebo vlastní pole, třeba Unit_Number__c |
abc__Inspection__c | Vlastní objekt ze spravovaného balíčku: abc je obor názvů dodavatele |
Delivery_History__b | Big object (modul 4) |
Shipment__x | Externí objekt: data žijí v jiném systému (modul 4) |
Allergies__pc | Vlastní kontaktní pole na osobním účtu (modul 2) |
Truck__r | Vztah za vlastním lookupem, když po něm v dotazu jdete |
Pár věcí, kterých si všimnout.
Zatím je to seznam. Takhle to učím: jako vrstvy. Existují tři druhy objektů, standardní, vlastní a ze spravovaného balíčku, a každý z nich může mít stejné druhy polí: standardní pole, se kterými přišel, a vlastní pole, která někdo přidal.
Standardní objekty. Account nemá předponu ani příponu a nemají je ani jeho standardní pole: Name, Industry, OwnerId. Do většiny standardních objektů můžete přidat vlastní pole a každé, které přidáte, končí na __c: Region__c (Custom Fields (otevře se v nové kartě)). Právě tato přípona vás chrání. Salesforce ve svých vydáních přidává do Account nová standardní pole, a protože vaše vždycky končí na __c a jeho nikdy, budoucí standardní pole se nikdy nemůže srazit s polem, které už máte.
Vlastní objekty. Váš vlastní objekt končí na __c, Truck__c (Custom Objects (otevře se v nové kartě)), a stejně tak vlastní pole, která na něj dáte: Unit_Number__c. Pole, se kterými se narodil, ta z minulé části, jsou ale standardní pole: Name, OwnerId, CreatedDate, bez přípony. I na vašem vlastním objektu vám tedy přípona říká, kdo které pole vytvořil.
Objekty ze spravovaných balíčků. Když nainstalujete spravovaný balíček z AppExchange, jeho objekty a pole přicházejí s předponou oboru názvů dodavatele: abc__Inspection__c a pole jako abc__Result__c. Tato předpona je pro dodavatele jedinečná a nemění se (Namespace Prefix (otevře se v nové kartě)). Slovy Salesforce se předpona přidává ke každé komponentě, aby byla jedinečná: z name__c se stane prefix__name__c (AppExchange Object Prefixes and the API (otevře se v nové kartě)). Dva dodavatelé tedy mohou oba dodat objekt jménem Invoice__c a nikdy se nesrazí navzájem ani s vámi. Objekty balíčku mají pořád svá standardní pole, Name a OwnerId, bez předpony. Balíček může také přidat vlastní pole s předponou do standardních objektů, třeba abc__Score__c na Account. A vy můžete přidat vlastní pole do objektů balíčku: Depot__c na abc__Inspection__c dostane vaši příponu __c, ale nikdy předponu dodavatele, protože jste ho vytvořili vy, ne oni (Known Issue: unmanaged custom field on a managed package object (otevře se v nové kartě)).
Přečtěte jakýkoli název API a víte, kdo ho vytvořil. Bez přípony: Salesforce. __c bez předpony: váš org. abc__ vpředu: dodavatel. Na tom záleží pokaždé, když plánujete změnu. Co je vaše, můžete měnit. Co patří Salesforce, konfigurujete a rozšiřujete. Co patří dodavateli, je většinou zamčené: pár věcí, jako rozvržení stránek a nápověda, můžete upravit, ale většina balíčku a každý název API patří dodavateli a jeho upgrady přinášejí jeho změny (Editable Properties After Package Promotion or Installation (otevře se v nové kartě)).
Nespravované balíčky to nedělají. Nainstalujte nespravovaný balíček a jeho objekty přistanou ve vašem orgu, jako byste je postavili sami, bez předpony. Pokud přinese Truck__c a vy už jeden máte, máte kolizi názvů. Zkontrolujte to před instalací.
Stavějte jen to, co Salesforce nemá
Section titled “Stavějte jen to, co Salesforce nemá ”Vytvořit vlastní objekt je snadné; právě proto si myslím, že jich vytváříme příliš mnoho. Obrazovka New Custom Object vám ochotně vytvoří Customer__c v orgu, který už má Account. Než tedy kliknete, položte si otázku z minulého modulu: nemá to mateřská loď už? Pokud ano, použijte to. Pokud ne, postavte to a vyplňte celou obrazovku jako architekt.
Další modul klade ještě dřívější otázku: mají tato data vůbec být v Salesforce?
Co tady rozhoduje architekt
Section titled “Co tady rozhoduje architekt ”- Zda už Salesforce nemá pro tohle standardní objekt, dřív než postavíme vlastní.
- Název API, zvolený jednou, a popis napsaný pro lidi i stroje.
- Název záznamu: Text, nebo Auto Number, s ohledem na očekávaný objem.
- Které volitelné funkce, přístup přes API a vyhledávání zapnout, záměrně.
- Co vám přípony v orgu říkají: vlastní, spravovaný, big, externí, osobní účet.
- Zda by se balíček, který se chystáte nainstalovat, mohl srazit s tím, co jste postavili.
K prozkoumání
Section titled “K prozkoumání ”- Custom Objects (otevře se v nové kartě) a Custom Fields (otevře se v nové kartě), Object Reference (ověřeno 2026-10-17): „the names of custom objects include a suffix of two underscores followed by a lowercase ‘c’“ (názvy vlastních objektů mají příponu ze dvou podtržítek a malého „c“); totéž pro vlastní pole; a tabulka standardních objektů, které vlastní pole podporují.
- AppExchange Object Prefixes and the API (otevře se v nové kartě), Object Reference (ověřeno 2026-10-17): předpona oboru názvů dělá každou komponentu balíčku jedinečnou; „name__c becomes prefix__name__c“.
- Namespace Prefix (otevře se v nové kartě), Apex Developer Guide (ověřeno 2026-10-17): předpony oborů názvů drží názvy objektů a polí spravovaných balíčků odděleně od názvů v jiných orgech.
- Editable Properties After Package Promotion or Installation (otevře se v nové kartě), Second-Generation Managed Packaging Developer Guide (ověřeno 2026-10-17): které vlastnosti komponent balíčku může upravit vývojář, odběratel, oba, nebo nikdo.
- Custom Object Standard Fields (otevře se v nové kartě), Salesforce Help (ověřeno 2026-10-17): standardní pole, která dostane každý vlastní objekt (Name, Owner, Created By, Last Modified By, Currency, Division), a proč se Owner na podřízené straně vztahu master-detail odstraní.
- Standard User Licenses (otevře se v nové kartě), Salesforce Help (ověřeno 2026-10-17): Lightning Platform Light App „can’t use the Bulk API or Streaming API“ (nemůže používat Bulk API ani Streaming API); Enterprise App „supports record-level sharing, can use the Bulk API and Streaming API“ (podporuje sdílení na úrovni záznamů a může používat Bulk API i Streaming API).
