Het het artikel: Beginnen met Apex, hebben we het gehad over welke IDE’s er zijn en hoe je de IDE klaar moet maken om een verbinding te leggen met Salesforce. In dit artikel gaan we kijken hoe we, in ons geval, een Sandbox kunnen laden in Visual Studio Code.
Nieuw project starten
Om te beginnen maken we een een nieuw project aan in VS Code. Dit doen we door CTRL+Shift+P (pc) te drukken en vervolgens te zoeken op SFDX: Create. VS Code geeft dan een aantal opties, waarbij we kiezen voor “SFDX: Create Project with Manifest”. Vervolgens krijg je 3 opties: 1) Standard: hier worden alle APEX classes, VS pages standaard aangemaakt (alle code). 2) Een lege template: Geen standaard bestanden 3) Analytics: is voor Analytics en gebruiken we niet in dit scenario.Vervolgens kun je een naam opgeven. Dit is puur een referentienaam dus kies een naam die herkenbaar is en kies vervolgens de folder waar de lokale bestanden opgeslagen moeten worden. Daarna is het zaak om het bestand “sfdx-project.json” te openen.
Login URL
Wat hier belangrijk is, is dat je bij “sfdcLoginUrl” de juiste url gebruikt. Zeker als je een MyDomain gebruikt, kun je hier de url invullen, zodat de connectie goed verloopt. Voor sandboxen wordt ook vaak de url test.salesforce.com gebruikt. In ons geval gebruiken we een custom domain en vullen deze in bij de “sfdcLoginUrl”.Toegang krijgen tot de org
Vervolgens gebruiken we de shortcut CTRL+Shift+P (pc) weer om in het command panel te komen waar we het volgende commando opgeven: SFDX: Authorize an Org. We gaan namelijk verbinding maken met deze (sandbox) org om metadata vandaan te halen. Let op: Gebruik hier bijv niet: https://naam.sandbox.lightning.force.com, maar gebruik https://naam.sandbox.my.salesforce.com, anders krijg je een foutmelding. Kies je de project default dan krijg je de url die je ingevuld hebt bij de sfdx-project.json. Als alles goed gegaan is wordt nu de browser geopend en krijg je de vraag om je te authentificeren. Daarna komt de laatste stap, waarbij je de toegang goed moet keuren. Vervolgens ben je ingelogd. Om dit te verifiëren kun je klikken op de Org browser in VSCode: Als je vervolgens onder de door jou gekozen naam de metadata ziet staan, ben je ingelogd!Apex class lokaal binnenhalen
In de org browser kun je bijvoorbeeld naar de map “Apex Classes” gaan waar je alle classes van de sandbox org ziet staan. Deze staan nog niet op je lokale machine. Om dat te doen kun je op het “Retrieve this source from org” icoontje klikken dat tevoorschijn komt als je met je muis over de class beweegt. Zo kun je bijvoorbeeld ook gelijk alles classes binnenhalen door op de folder te gaan staan en daar op “Retrieve this source from org” te klikken. Als je nu teruggaat naar de Explorer in VScode, zie je onder force-app > classes de gekozen classes terug. In dit geval heb ik MyRestResource binnengehaald die ik gebruikt heb voor een HTTP POST call.
Autocomplete
Om het leven nog wat gemakkelijker te maken, kun je de autocomplete functie aanzetten. Zo wordt vervolgens door VS Code veldsuggesties gedaan. Om dit aan te zetten moet de volgende code gebruikt worden inhet command panel: SFDX: Refresh SObject Definitions Vervolgens krijg je de vraag of je alle objecten wilt vernieuwen of alleen de standaard of custom objecten. De eerste keer zou ik alle objecten vernieuwen, maar op een later moment kun je kiezen, waarbij het proces sneller zal verlopen.Ctrl+S, Conflicten en Refresh SObjects
Standaard moet je bij iedere wijziging een rechtermuisklik doen op het desbetreffende bestand en vervolgens klikken op “SFDX: Deploy Source to Org” wat best omslachtig kan zijn als je bezig bent met het testen. Daarom kun je in VSCode een instelling wijzigen, waarbij deze actie automatisch getriggerd wordt bij het drukken op Ctrl+S. Dit doe je door naar File > Preferences > Settings > Extentions > Salesforce Feature Previews en vink vervolgens de optie “Push-or-Deploy-on-save” aan. Kijk wel uit met deze instelling dat je geen verkeerde zaken overschrijft etc. Als je toch in de instellingen zit is het wellicht slim om gelijk de optie “Detect Conflicts At Sync” aan te zetten, zodat je een melding krijgt mochten er conflicten optreden tijdens het syncen. Als laatste is het handig om de optie “Enable-sobject-refresh-on-startup” aan te zetten. Deze optie zorgt ervoor dat je altijd de nieuwste Sobjects binnengehaald worden (zie autocomplete) bij het opstarten. Zo ben je altijd up-to-date.Data binnenhalen via de Manifest Package
Mocht je dezelfde files binnenhalen voor verschillende projecten, is het wellicht handig om niet los alle bestanden op te halen, maar om dit eenmalig in de Manifest Package weg te schrijven. In dit xml-bestand kun je exact opgeven welke bestanden je binnen wilt halen en deze kun je vervolgens oproepen via het commando:
SFDX: Retrieve Source in Manifest from Org
Dat kan veel tijd schelen in sommige gevallen!