Apex - Panoramica
Cos'è Apex?
Apex è un linguaggio proprietario sviluppato da Salesforce.com. Secondo la definizione ufficiale, Apex è un linguaggio di programmazione orientato agli oggetti fortemente tipizzato che consente agli sviluppatori di eseguire le istruzioni di controllo del flusso e delle transazioni sul server della piattaforma Force.com insieme alle chiamate all'API Force.com.
Ha una sintassi simile a Java e agisce come procedure memorizzate di database. Consente agli sviluppatori di aggiungere logica di business alla maggior parte degli eventi di sistema, inclusi clic sui pulsanti, aggiornamenti dei record correlati e Visualforcepages.Apexil codice può essere avviato dalle richieste del servizio Web e dai trigger sugli oggetti. Apex è incluso in Performance Edition, Unlimited Edition, Enterprise Edition e Developer Edition.
Caratteristiche di Apex come linguaggio
Parliamo ora delle caratteristiche di Apex come linguaggio:
Integrato
Apex ha il supporto integrato per le operazioni DML come INSERT, UPDATE, DELETE e anche la gestione delle eccezioni DML. Supporta la gestione delle query SOQL e SOSL inline che restituisce il set di record sObject. Studieremo in dettaglio sObject, SOQL, SOSL nei prossimi capitoli.
Java come sintassi e facile da usare
Apex è facile da usare in quanto utilizza la sintassi come Java. Ad esempio, dichiarazione di variabili, sintassi del ciclo e istruzioni condizionali.
Fortemente integrato con i dati
Apex è incentrato sui dati e progettato per eseguire più query e istruzioni DML insieme. Emette più istruzioni di transazione sul database.
Fortemente digitato
Apex è un linguaggio fortemente tipizzato. Utilizza il riferimento diretto agli oggetti dello schema come sObject e qualsiasi riferimento non valido fallisce rapidamente se viene eliminato o se è di tipo di dati errato.
Ambiente multi-tenant
Apex viene eseguito in un ambiente multi-tenant. Di conseguenza, il motore di runtime Apex è progettato per proteggersi da codice in fuga, impedendogli di monopolizzare le risorse condivise. Qualsiasi codice che viola i limiti non riesce con messaggi di errore di facile comprensione.
Aggiornamenti automatici
Apex viene aggiornato come parte delle versioni di Salesforce. Non dobbiamo aggiornarlo manualmente.
Test facile
Apex fornisce supporto integrato per la creazione e l'esecuzione di unit test, inclusi i risultati dei test che indicano quanto codice è coperto e quali parti del codice possono essere più efficienti.
Quando lo sviluppatore dovrebbe scegliere Apex?
Apex dovrebbe essere utilizzato quando non siamo in grado di implementare la complessa funzionalità aziendale utilizzando le funzionalità predefinite ed esistenti fuori dagli schemi. Di seguito sono riportati i casi in cui è necessario utilizzare apex sulla configurazione di Salesforce.
Applicazioni Apex
Possiamo usare Apex quando vogliamo:
Crea servizi Web integrando altri sistemi.
Crea servizi di posta elettronica per il blast e la configurazione della posta elettronica.
Esegui la convalida complessa su più oggetti contemporaneamente e anche l'implementazione della convalida personalizzata.
Crea processi aziendali complessi che non sono supportati dalle funzionalità o dai flussi del flusso di lavoro esistenti.
Creare una logica transazionale personalizzata (logica che si verifica sull'intera transazione, non solo con un singolo record o oggetto) come l'utilizzo dei metodi Database per l'aggiornamento dei record.
Esegui una logica quando un record viene modificato o modifica il record dell'oggetto correlato quando si verifica un evento che ha causato l'attivazione del trigger.
Struttura di lavoro di Apex
Come mostrato nel diagramma seguente (Riferimento: documentazione per gli sviluppatori di Salesforce), Apex viene eseguito interamente su richiesta della piattaforma Force.com
Flusso di azioni
Ci sono due sequenze di azioni quando lo sviluppatore salva il codice e quando un utente finale esegue un'azione che richiama il codice Apex come mostrato di seguito:
Azione dello sviluppatore
Quando uno sviluppatore scrive e salva il codice Apex sulla piattaforma, il server delle applicazioni della piattaforma compila prima il codice in una serie di istruzioni che possono essere comprese dall'interprete di runtime Apex, quindi salva tali istruzioni come metadati.
Azione dell'utente finale
Quando un utente finale attiva l'esecuzione di Apex, facendo clic su un pulsante o accedendo a una pagina Visualforce, il server delle applicazioni della piattaforma recupera le istruzioni compilate dai metadati e le invia tramite l'interprete di runtime prima di restituire il risultato. L'utente finale non osserva differenze nel tempo di esecuzione rispetto alla richiesta della piattaforma applicativa standard.
Poiché Apex è il linguaggio proprietario di Salesforce.com, non supporta alcune funzionalità che fa un linguaggio di programmazione generale. Di seguito sono riportate alcune funzionalità che Apex non supporta:
Non può mostrare gli elementi nell'interfaccia utente.
Non è possibile modificare la funzionalità fornita dall'SFDC standard e inoltre non è possibile impedire l'esecuzione della funzionalità standard.
Inoltre, non è possibile creare più thread in quanto possiamo farlo in altre lingue.
Comprensione della sintassi Apex
Il codice Apex contiene in genere molte cose che potremmo avere familiarità con altri linguaggi di programmazione.
Dichiarazione di variabili
Come linguaggio fortemente tipizzato, devi dichiarare ogni variabile con tipo di dati in Apex. Come si vede nel codice sottostante (screenshot sotto), lstAcc è dichiarato con il tipo di dati come List of Accounts.
Query SOQL
Questo verrà utilizzato per recuperare i dati dal database di Salesforce. La query mostrata nella schermata seguente sta recuperando i dati dall'oggetto Account.
Istruzione Loop
Questa istruzione del ciclo viene utilizzata per iterare su un elenco o per iterare su una porzione di codice per un numero di volte specificato. Nel codice mostrato nello screenshot qui sotto, l'iterazione sarà uguale al numero di record che abbiamo.
Dichiarazione di controllo del flusso
L'istruzione If viene utilizzata per il controllo del flusso in questo codice. In base a determinate condizioni, si decide se avviare l'esecuzione o interrompere l'esecuzione di un particolare pezzo di codice. Ad esempio, nel codice mostrato di seguito, controlla se l'elenco è vuoto o contiene record.
Dichiarazione DML
Esegue le operazioni di inserimento, aggiornamento, upsert, cancellazione dei record sui record nel database. Ad esempio, il codice fornito di seguito aiuta ad aggiornare gli account con un nuovo valore di campo.
Di seguito è riportato un esempio di come apparirà uno snippet di codice Apex. Studieremo ulteriormente tutti questi concetti di programmazione Apex in questo tutorial.