Siirry sisältöön

Mukautetut objektit

Saatavilla myös 28 kielellä

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 · Español (México) · Français (Canada) · Deutsch (Schweiz)

In a truck body shop, a custom white box body hangs on chains above a standard truck chassis, already fitted with its doors, lights and mud flaps.
Kuva on luotu tekoälyllä

Moduuli 3/10 luvussa Salesforcen tietoarkkitehtuuri, Data Architect -kurssin luku 3. Jokainen moduuli on itsenäinen. Edellinen: Katso emoalukseen: vakiotietomallit · Seuraava: Missä nämä tiedot asuvat?

Kysymys, johon tämä moduuli vastaa: Kun Salesforcessa ei ole sitä, mitä oikeastaan saat, kun rakennat oman objektin?

Edellisessä moduulissa katsoimme, mitä Salesforce on jo rakentanut. Joskus siellä ei ole sitä, mitä tarvitset. Steve Trucking ajaa kuorma-autoja, eikä vakio-objektina ole Truck-objektia. Joten rakennat sellaisen: mukautetun objektin.

Tämän haluan sinun näkevän tässä moduulissa. Mukautettu objekti luodaan metatietoina, kuten kaikki muukin moduulissa 1, ja heti kun se on olemassa, sen mukana tulee joukko vakiotoiminnallisuutta. Se ei ole tyhjä taulu. Ja näkymä, jonka täytät sitä luodessasi, esittää sinulle arkkitehtuurikysymyksiä, huomasitpa sen tai et.

Mene kohtaan Setup → Object Manager → Create → Custom Object, niin saat yhden pitkän lomakkeen. Useimmat täyttävät kaksi ensimmäistä kenttää ja napsauttavat Save. Hidastetaan ja luetaan se.

Label ja Plural Label (nimike ja monikkonimike). ”Truck” ja ”Trucks”. Nämä käyttäjät näkevät välilehdissä, sivuasetteluissa ja raporteissa. Niitä voi muuttaa myöhemmin ilman suurta tuskaa.

Object Name (objektin nimi). Tämä on eri asia: se on API-nimi, nimi, jota koodi, integraatiot, raportit ja nykyään agentit käyttävät. Kirjoita ”Truck”, niin Salesforce tekee siitä Truck__c. Sen muuttaminen myöhemmin tarkoittaa kaiken siihen viittaavan etsimistä, eli taas luvun 1 peruttavuustestiä. Tee tämä oikein ensimmäisellä kerralla.

Description (kuvaus). Täytä se. Joka kerta. Moduulissa 1 sanoin, että metatiedot eivät ole enää koristetta: seuraava ylläpitäjä lukee tämän, ja niin lukee jokainen tekoälytyökalu, joka yrittää ymmärtää orgiasi. Mukautettu objekti, jonka kuvaus on tyhjä, on laatikko ilman etikettiä.

Record Name (tietueen nimi). Jokaisella mukautetulla objektilla on Name-kenttä, ja tässä päätät, mikä se on. Text-nimi, kuten ”Truck 117”, tai Auto Number, kuten T-000184, jonka Salesforce täyttää puolestasi. Lue näkymän varoitus: jos aiot lisätä suuren määrän tietueita API:n kautta, Salesforce käskee käyttämään Text-tyyppiä. Siinä alusta kertoo sinulle jotain mittakaavasta jo ennen kuin olet luonut yhtäkään tietuetta.

New Custom Object -näkymän Record Name -osio: Record Name -kenttä, tietotyyppinä Text ja varoitus käyttää Text-tietotyyppiä, jos aiot lisätä suuren määrän tietueita API kautta

Salesforce Setup, New Custom Object: Record Name -osio varoituksineen (kuvakaappaus, 2026-10-12). Täysikokoinen

Optional Features (valinnaiset ominaisuudet). Allow Reports, Allow Activities, Track Field History, Allow in Chatter Groups. Oletuksena pois päältä. Jokainen on ominaisuus, jonka kytket päälle tälle objektille; päätä tarkoituksella.

Object Classification (objektin luokittelu). Allow Sharing, Allow Bulk API Access, Allow Streaming API Access, kaikki oletuksena päällä. Näkymä sanoo sen suoraan: kun nämä ovat päällä, objekti on Enterprise Application -objekti; kun ne ovat pois päältä, se on Light Application -objekti. Nimet vastaavat Salesforcen sovellustilauslisenssejä: Lightning Platform Light App -sovelluksessa ei ole tietuetason jakamista eikä se voi käyttää Bulk API:a tai Streaming API:a, ja Enterprise App voi. Neuvoni: jätä ne päälle, ellet tiedä tarkalleen, miksi ei. Kytke Bulk API -pääsy pois objektista, johon myöhemmin lataat tietoja suurina määrinä, niin saat selville, miksi sillä oli väliä.

Deployment Status ja Search (käyttöönoton tila ja haku). ”In Development” piilottaa objektin käyttäjiltä sillä aikaa, kun rakennat sitä; ”Deployed” tekee siitä käytössä olevan. Ja Allow Search on oletuksena pois päältä, joten käyttäjät eivät löydä näitä tietueita yleishaulla ennen kuin kytket sen päälle. Se yllättää ihmiset joka kerta.

Object Classification-, Deployment Status- ja Search Status -osiot: Allow Sharing, Allow Bulk API Access ja Allow Streaming API Access valittuina; Deployed valittuna; Allow Search valitsematta

Oletukset: kolme API-asetusta päällä, Deployed ja Allow Search pois päältä (kuvakaappaus, 2026-10-12). Täysikokoinen

Napsauta Save, niin Object Manager näyttää objektin: API-nimi Truck__c, valintamerkki kohdassa Custom, nimikkeet, käyttöönoton tila. Katso kuitenkin vasenta reunaa: Fields & Relationships, Page Layouts, Lightning Record Pages, Record Types, Validation Rules, Triggers, Flow Triggers, Object Access, Field Access. Tuo luettelo on moduuli 1 näkyväksi tehtynä. Objekti ei ole vain tallennuspaikka; se on paikka, josta kaikki tuo toiminta riippuu.

Object Manager näyttää Truck-objektin: API Name Truck__c, Custom valittuna, yksikkö- ja monikkonimikkeet sekä vasemman reunan luettelo Fields & Relationships -kohdasta Validation Rules -kohtaan

Object Manager, Truck: API-nimi Truck__c, Custom ja kaikki, mikä objektiin kiinnittyy (kuvakaappaus, 2026-10-12). Täysikokoinen

Avaa Fields & Relationships upouudessa mukautetussa objektissa, niin siinä on jo kenttiä. Jokainen mukautettu objekti saa vakiojoukon:

  • Name, juuri valitsemasi tietueen nimi, jota käytetään sivuasetteluissa, liittyvissä luetteloissa, lookup-kentissä ja hakutuloksissa.
  • Owner, käyttäjä tai jono, joka omistaa tietueen.
  • Created By ja Last Modified By, käyttäjät, jotka loivat tietueen ja muuttivat sitä viimeksi.
  • Currency, jos useampi valuutta on käytössä, ja Division, jos orgisi käyttää divisioonia.

Ja pinnan alla moduulin 1 tietueen ID sekä luonti- ja muokkauspäivämäärät. Vie muutama tietue Data Loaderilla, niin näet ne kaikki.

Yksi niistä voi kadota. Tee mukautetusta objektistasi master-detail-suhteen detail-puoli, niin Owner-kenttä katoaa: omistajuus tulee sen sijaan master-tietueelta. Se on isompi asia kuin miltä kuulostaa, ja palaamme siihen moduuleissa 7 ja 8.

Etuliitteet ja jälkiliitteet: mitä katsot

Osio nimeltä “Etuliitteet ja jälkiliitteet: mitä katsot ”

Edellisessä moduulissa sanoin, että vakio-objekteilla ei ole etuliitettä eikä jälkiliitettä. Kaikella muulla on, ja kun osaat lukea ne, kenttäluettelo kertoo tarkalleen, mitä katsot.

Miltä se näyttääMikä se on
Account, CaseVakio-objekti tai -kenttä: ei etuliitettä, ei jälkiliitettä
Truck__cMukautettu objekti tai mukautettu kenttä, kuten Unit_Number__c
abc__Inspection__cHallitun paketin (managed package) mukautettu objekti: abc on toimittajan nimiavaruus
Delivery_History__bBig object (moduuli 4)
Shipment__xUlkoinen objekti: tiedot asuvat toisessa järjestelmässä (moduuli 4)
Allergies__pcHenkilötilin mukautettu yhteyshenkilökenttä (moduuli 2)
Truck__rMukautetun lookup-kentän takana oleva suhde, kun seuraat sitä kyselyssä

Muutama huomio.

Tähän asti se on luettelo. Näin minä opetan sen: kerroksina. On kolmenlaisia objekteja, vakio-objekteja, mukautettuja objekteja ja hallitun paketin objekteja, ja jokaisessa niistä voi olla samanlaisia kenttiä: vakiokentät, joiden kanssa se tuli, ja mukautetut kentät, jotka joku on lisännyt.

Vakio-objektit. Account-objektilla ei ole etuliitettä eikä jälkiliitettä, eikä myöskään sen vakiokentillä: Name, Industry, OwnerId. Useimpiin vakio-objekteihin voi lisätä mukautettuja kenttiä, ja jokainen lisäämäsi päättyy __c: Region__c (Custom Fields (opens in a new tab)). Tuo jälkiliite pitää sinut turvassa. Salesforce lisää julkaisuissaan uusia vakiokenttiä tiliin, ja koska sinun kenttäsi päättyvät aina __c ja sen kentät eivät koskaan, tuleva vakiokenttä ei voi koskaan törmätä kenttään, joka sinulla jo on.

Mukautetut objektit. Oma objektisi päättyy __c, Truck__c (Custom Objects (opens in a new tab)), ja niin päättyvät myös siihen lisäämäsi mukautetut kentät: Unit_Number__c. Mutta kentät, joiden kanssa se syntyi, edellisen osion kentät, ovat vakiokenttiä: Name, OwnerId, CreatedDate, ei jälkiliitettä. Joten omassakin objektissasi jälkiliite kertoo, kuka kunkin kentän teki.

Hallitun paketin objektit. Kun asennat hallitun paketin AppExchangesta, sen objektit ja kentät tulevat toimittajan nimiavaruuden etuliitteen (namespace prefix) kanssa: abc__Inspection__c ja kentät kuten abc__Result__c. Etuliite on toimittajalle yksilöllinen, eikä se muutu (Namespace Prefix (opens in a new tab)). Salesforcen omin sanoin etuliite lisätään jokaiseen komponenttiin sen tekemiseksi yksilölliseksi: name__c muuttuu muotoon prefix__name__c (AppExchange Object Prefixes and the API (opens in a new tab)). Joten kaksi toimittajaa voi kumpikin toimittaa objektin nimeltä Invoice__c törmäämättä koskaan toisiinsa tai sinuun. Paketin objekteilla on silti vakiokenttänsä, Name ja OwnerId, ilman etuliitettä. Paketti voi myös lisätä omia etuliitteellisiä kenttiään vakio-objekteihin, kuten abc__Score__c tilissä. Ja voit lisätä omia mukautettuja kenttiäsi paketin objekteihin: Depot__c objektissa abc__Inspection__c saa sinun __c-jälkiliitteesi mutta ei koskaan toimittajan etuliitettä, koska sinä teit sen, et he (Known Issue: unmanaged custom field on a managed package object (opens in a new tab)).

Nimien lukeminen Kolme objektilajia, kukin luettuna samoissa neljässä kerroksessa. Vakio-objekti, Salesforcen rakentama: Account; sen vakiokentillä, kuten Name, OwnerId ja Industry, ei ole päätettä; hallittu paketti voi lisätä omia kenttiään, kuten abc__Score__c; omat mukautetut kenttäsi päättyvät __c, kuten Region__c. Mukautettu objekti, sinun rakentamasi: Truck__c; sen vakiokentillä Name, OwnerId ja CreatedDate ei ole päätettä; ei paketin kenttiä, koska objekti on sinun; omat mukautetut kenttäsi päättyvät __c, kuten Unit_Number__c. Hallitun paketin objekti, asennettu toimittajalta abc: abc__Inspection__c; sen vakiokentillä ei ole etuliitettä; paketin omissa kentissä on etuliite, kuten abc__Result__c; ja lisäämäsi kentät, kuten Depot__c, saavat sinun __c-päätteesi, mutta eivät koskaan toimittajan etuliitettä. Alla: ei päätettä on Salesforcen, __c on mukautettu ja abc__ on toimittajan, eikä se koskaan muutu. Vakio-objekti Salesforcen rakentama OBJEKTI Tili SEN VAKIOKENTÄT Name, OwnerId, Industry: ei päätettä PAKETIN KENTÄT abc__Score__c, jos paketti lisää sellaisen OMAT MUKAUTETUT KENTTÄSI Region__c Mukautettu objekti sinun rakentamasi OBJEKTI Truck__c SEN VAKIOKENTÄT Name, OwnerId, CreatedDate: ei päätettä PAKETIN KENTÄT ei mitään: objekti on sinun OMAT MUKAUTETUT KENTTÄSI Unit_Number__c Hallitun paketin objekti asennettu, toimittajalta abc OBJEKTI abc__Inspection__c SEN VAKIOKENTÄT Name, OwnerId, CreatedDate: ei etuliitettä PAKETIN KENTÄT abc__Result__c OMAT MUKAUTETUT KENTTÄSI Depot__c: sinun päätteesi, ei koskaan heidän etuliitettään Ei päätettä: Salesforcen. __c: mukautettu. abc__: toimittajan, eikä se koskaan muutu. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Lue mikä tahansa API-nimi, niin tiedät, kuka sen teki. Ei jälkiliitettä: Salesforce. __c ilman etuliitettä: orgisi. abc__ edessä: toimittaja. Sillä on merkitystä aina, kun suunnittelet muutosta. Sen, mikä on sinun, voit muuttaa. Sen, mikä on Salesforcen, määrität ja laajennat. Se, mikä on toimittajan, on enimmäkseen lukittu: muutamaa asiaa, kuten sivuasetteluja ja ohjetekstiä, saat muokata, mutta suurin osa paketista ja jokainen API-nimi kuuluu toimittajalle, ja sen päivitykset tuovat sen muutokset (Editable Properties After Package Promotion or Installation (opens in a new tab)).

Hallitsemattomissa paketeissa ei ole. Asenna hallitsematon paketti (unmanaged package), niin sen objektit päätyvät orgiisi kuin olisit rakentanut ne itse, ilman etuliitettä. Jos se tuo mukanaan Truck__c-objektin ja sinulla on jo sellainen, sinulla on nimitörmäys. Tarkista ennen kuin asennat.

Rakenna vain se, mitä Salesforcessa ei ole

Osio nimeltä “Rakenna vain se, mitä Salesforcessa ei ole ”

Mukautetun objektin luominen on helppoa; juuri siksi luulen, että luomme niitä liikaa. New Custom Object -näkymä tekee sinulle mielellään Customer__c-objektin orgiin, jossa tili on jo olemassa. Joten ennen kuin napsautat, kysy edellisen moduulin kysymys: onko emoaluksessa tämä jo? Jos on, käytä sitä. Jos ei, rakenna se ja täytä koko näkymä kuin arkkitehti.

Seuraava moduuli kysyy vielä aiemman kysymyksen: pitäisikö näiden tietojen olla Salesforcessa lainkaan?

  • Onko Salesforcessa jo vakio-objekti tähän, ennen kuin rakennetaan mukautettu.
  • API-nimi, kerralla valittuna, ja kuvaus, joka on kirjoitettu ihmisille ja koneille.
  • Tietueen nimi: Text vai Auto Number, odotettu volyymi mielessä.
  • Mitkä valinnaiset ominaisuudet, API-pääsyt ja haku kytketään päälle, tarkoituksella.
  • Mitä orgin jälkiliitteet kertovat: mukautettu, hallittu, big object, ulkoinen, henkilötili.
  • Voiko paketti, jota olet asentamassa, törmätä siihen, mitä olet rakentanut.
  • Custom Objects (opens in a new tab) ja Custom Fields (opens in a new tab), Object Reference (englanniksi, tarkistettu 2026-10-13): mukautettujen objektien nimissä on jälkiliite, jossa on kaksi alaviivaa ja pieni c-kirjain (”the names of custom objects include a suffix of two underscores followed by a lowercase ‘c’”); sama koskee mukautettuja kenttiä; sekä taulukko vakio-objekteista, jotka tukevat mukautettuja kenttiä.
  • AppExchange Object Prefixes and the API (opens in a new tab), Object Reference (englanniksi, tarkistettu 2026-10-13): nimiavaruuden etuliite tekee jokaisesta paketoidusta komponentista yksilöllisen; ”name__c becomes prefix__name__c”.
  • Namespace Prefix (opens in a new tab), Apex Developer Guide (englanniksi, tarkistettu 2026-10-13): nimiavaruuden etuliitteet pitävät hallittujen pakettien objektien ja kenttien nimet erillään muiden orgien nimistä.
  • Editable Properties After Package Promotion or Installation (opens in a new tab), Second-Generation Managed Packaging Developer Guide (englanniksi, tarkistettu 2026-10-13): mitä paketin komponenttien ominaisuuksia kehittäjä, tilaaja, molemmat tai ei kumpikaan voi muokata.
  • Custom Object Standard Fields (opens in a new tab), Salesforce Help (englanniksi, tarkistettu 2026-10-12): vakiokentät, jotka jokainen mukautettu objekti saa (Name, Owner, Created By, Last Modified By, Currency, Division), ja miksi Owner poistetaan master-detail-suhteen detail-puolelta.
  • Standard User Licenses (opens in a new tab), Salesforce Help (englanniksi, tarkistettu 2026-10-12): Lightning Platform Light App ei voi käyttää Bulk API:a tai Streaming API:a (”can’t use the Bulk API or Streaming API”); Enterprise App tukee tietuetason jakamista ja voi käyttää Bulk API:a ja Streaming API:a (”supports record-level sharing, can use the Bulk API and Streaming API.”).