Utilizzare gli sObject
Obiettivi di apprendimento
Utilizzare gli sObject
Campo account | Valore |
---|---|
ID | 001D000000JlfXe |
Name | Acme |
Phone | (415) 555-1212 |
NumberOfEmployees | 100 |
Ciascun record Salesforce è rappresentato come sObject prima di essere inserito in Salesforce. Analogamente, quando i record salvati in modo permanente vengono recuperati da Salesforce, vengono memorizzati in una variabile sObject.
I record oggetti standard e personalizzati in Salesforce corrispondono ai rispettivi tipi di sObject in Apex. Ecco alcuni nomi di tipi di sObject comuni in Apex utilizzati per gli oggetti standard.
- Account
- Contact
- Lead
- Opportunity
Se hai aggiunto oggetti personalizzati nella tua organizzazione, utilizza i nomi API degli oggetti personalizzati in Apex. Ad esempio, un oggetto personalizzato chiamato Merce corrisponde all'oggetto Merce__c sObject di Apex.
Creare variabili sObject
Per creare un sObject, occorre dichiarare una variabile e assegnarle un'istanza di sObject. Il tipo di dati della variabile è il tipo sObject.
L'esempio seguente crea un sObject di tipo Account con il nome Acme e lo assegna alla variabile acct
.
sObject e nomi campo
Apex fa riferimento a sObject standard o personalizzati e ai relativi campi utilizzandone i nomi API univoci.
I nomi API degli oggetti e dei campi possono differire dalle rispettive etichette. Ad esempio, il campo Dipendenti ha l'etichetta Dipendenti ed è visualizzato nella pagina dei record account come Dipendenti, ma il suo nome API è NumberOfEmployees. Per accedere a questo campo in Apex, è necessario utilizzare il nome API del campo: NumberOfEmployees.
Di seguito sono riportate alcune regole utilizzate per i nomi API degli oggetti e dei campi personalizzati.
Per gli oggetti e i campi personalizzati, il nome dell'API termina sempre con il suffisso __c. Per i campi relazione personalizzati, il nome dell'API termina sempre con il suffisso __r. Ad esempio:
- Un oggetto personalizzato con l'etichetta Merce ha un nome API Merce__c.
- Un campo personalizzato con l'etichetta Descrizione ha un nome API Descrizione__c.
- Un campo relazione personalizzato con l'etichetta Elementi ha un nome API Elementi__c.
Inoltre, gli spazi nelle etichette sono sostituiti da caratteri di sottolineatura nei nomi API. Ad esempio, il nome di un campo personalizzato Anzianità dipendente ha come nome API Anzianità _dipendente__c.
Trovare oggetto e nomi campo
Per trovare i nomi degli oggetti standard e dei rispettivi campi da utilizzare in Apex, consulta Riferimento oggetti per Salesforce e Lightning Platform.
Sia per gli oggetti standard che per quelli personalizzati, cerca i nomi API degli oggetti e dei campi nell'organizzazione. Da Imposta, fai clic sulla scheda Gestore oggetti a destra della scheda Pagina iniziale, quindi fai clic sul nome dell'oggetto.
Creare sObject e aggiungere campi
Per poter inserire un record di Salesforce, è prima necessario crearlo in memoria come sObject. Come ogni altro oggetto, anche gli sObject vengono creati con l'operatore new
:
Il nome oggetto API diventa il tipo di dati della variabile sObject in Apex. In questo esempio, Account
è il tipo di dati della variabile acct
.
L'account a cui fa riferimento la variabile acct
è vuoto perché non abbiamo ancora compilato alcun campo. Ci sono due modi per aggiungere campi: attraverso il costruttore o utilizzando la notazione con punti.
Il modo più veloce per aggiungere i campi è quello di specificarli come coppie nome-valore all'interno del costruttore. Ad esempio, questa istruzione crea un nuovo sObject account e compila il suo campo Nome con un valore di stringa.
Il campo Nome è l'unico campo obbligatorio per gli account, il che significa che deve essere compilato prima che sia possibile inserire un nuovo record. Tuttavia, è possibile compilare anche altri campi per il nuovo record. Questo esempio prevede anche l'aggiunta di un numero di telefono e del numero di dipendenti.
In alternativa, è possibile utilizzare la notazione con punti per aggiungere campi a un sObject. Il seguente esempio è equivalente a quello precedente, anche se richiede qualche riga di codice in più.
Lavorare con il tipo di dati sObject generico
Le variabili dichiarate con il tipo di dati sObject generico possono fare riferimento a qualsiasi record Salesforce, sia esso un record oggetto standard o personalizzato.

In questo esempio viene mostrato come qualsiasi oggetto Salesforce, ad esempio un account o un oggetto personalizzato chiamato Libro__c, possa essere assegnato a una variabile sObject generica.
Viceversa, le variabili dichiarate con il tipo di dati sObject possono fare riferimento solo ai record Salesforce dello stesso tipo.

Assegnare sObject generici a tipi di sObject specifici
Quando si ha a che fare con sObject generici, a volte è necessario assegnare l'sObject variabile a un tipo di sObject specifico. Uno dei vantaggi di questa operazione è la possibilità di accedere ai campi utilizzando la notazione con punti, che non è disponibile nell'sObject generico. Poiché sObject è un tipo superiore per tutti i tipi di sObject specifici, è possibile assegnare un sObject generico a un sObject specifico. Questo esempio mostra come assegnare un sObject generico a un Account.
Ulteriori informazioni...
I campi di un sObject generico sono accessibili solo tramite i metodi put()
e get()
.
In questa unità hai imparato cosa sono gli sObject e come usarli. Tuttavia, la creazione di un sObject non ne comporta il salvataggio permanente come record nel database. Per salvare l'sObject come record e utilizzarlo in altri modi, è necessario usare il Data Manipulation Language (DML). Per recuperare un record, usa Salesforce Object Query Language (SOQL). Nelle unità successive trovi informazioni su DML e SOQL.
Risorse
- Guida di riferimenti per gli oggetti per Salesforce e Lightning Platform
- Apex Developer Guide: Working with sObjects (Lavorare con gli sObject)
- Apex Developer Guide: SObject Methods (Metodi SObject)