Zelfstudie voor Salesforce-ontwikkelaars: aan de slag met Salesforce-programmering



Deze tutorialblog legt de verschillende programmeerconcepten uit, zoals visualforce en apex, die u moet kennen om uw carrière als Salesforce-ontwikkelaar te beginnen.

Wilt u een ontwikkelaar van softwareapplicaties worden? Wilt u uw eigen applicatie bouwen op het Force.com-platform? Als uw antwoord op deze vragen ja is, moet u zeker overwegen om Salesforce-ontwikkelaar te worden.

In mijn vorige blogs heb ik het erover gehad , Salesforce-certificeringen en je ook laten zien bouw een applicatie op maat met behulp van de declaratieve opties die beschikbaar zijn in Salesforce. In deze blog zal ik ingaan op de programma-opties die beschikbaar zijn in Salesforce om uw applicatie te ontwikkelen.





MVC-architectuur

Voordat ik me verdiep in het bouwen van een applicatie met Visualforce en Apex, zal ik eerst ingaan op de Salesforce Model-View-Controller-architectuur. Hieronder ziet u een diagram dat de Salesforce Model-View-Controller-architectuur schetst, samen met de verschillende Salesforce-componenten.

mvc - salesforce ontwikkelaar - edureka



Model: Het model bestaat uit uw Salesforce-gegevensobjecten, velden en relaties. Het bestaat uit standaard (account, verkoopkans, enz.) En aangepaste objecten (objecten die u maakt).

Visie: De weergave vertegenwoordigt de presentatie van de gegevens, d.w.z. de gebruikersinterface. In Salesforce bestaat de weergave uit de visualforce-pagina's, componenten, paginalay-outs en tabbladen.

Verantwoordelijke: De controller is de bouwsteen van de eigenlijke applicatielogica. U kunt acties uitvoeren wanneer de gebruiker interactie heeft met visualforce.



Salesforce in actie

Om Salesforce-ontwikkelaar te zijn, moet u eerst weten hoe Salesforce-applicaties werken. Hieronder is een afbeelding wat u een compleet beeld geeft van Salesforce in actie. De klant of gebruiker vraagt ​​of verstrekt informatie aan de Salesforce-applicatie. Dit wordt doorgaans gedaan met Visualforce. Deze informatie wordt vervolgens doorgegeven aan de logische applicatielaag, geschreven in Apex. Afhankelijk van de informatie worden gegevens ingevoegd of verwijderd uit de database. Salesforce biedt u ook de mogelijkheid om webservices te gebruiken om rechtstreeks toegang te krijgen tot de toepassingslogica.

Een Salesforce-ontwikkelaar kan ontwikkeling benaderen met behulp van de declaratieve of programmatische opties. Hieronder ziet u een afbeelding die u details geeft over zowel de declaratieve als de programmatische benaderingen die beschikbaar zijn op elk van de gebruikersinterface, bedrijfslogica en datamodellaag. Om uw gebruikersinterface te bouwen, kunt u de declaratieve benadering gebruiken die gebruikmaakt van paginalay-outs en recordtypen of een programmatische benadering gebruiken, zoals visualforce-pagina's en componenten. Over het algemeen zou u de programmatische benadering alleen moeten gebruiken als u niet de noodzakelijke gebruikersinterface kunt bereiken met de declaratieve benadering. Om de bedrijfslogica-laag van uw applicatie te ontwikkelen, kunt u ofwel de declaratieve Salesforce-opties voor workflow, validatieregels en goedkeuringsprocessen gebruiken of een programmatische aanpak gebruiken, zoals triggers, controllers en klassen. Om toegang te krijgen tot het gegevensmodel, kunt u de declaratieve benadering gebruiken met behulp van objecten, velden en relaties. U kunt ook programmatisch toegang krijgen tot het datamodel met behulp van metadata-API, REST API en bulk-API.

We hebben gezien hoe Salesforce-applicaties werken, de MVC-architectuur die wordt gebruikt voor ontwikkeling in Salesforce en de twee verschillende benaderingen die beschikbaar zijn voor een Salesforce-ontwikkelaar. Laat me het nu hebben over Visualforce en Apex.

Visualforce

Om applicaties op het Salesforce-platform te bouwen, moet u weten hoe u een gebruikersinterface ontwikkelt en applicatielogica schrijft. Als Salesforce-ontwikkelaar kunt u de gebruikersinterface ontwikkelen met Visualforce. Visualforce is het gebruikersinterfaceframework voor het Force.com-platform. Net zoals u het Javascript Angular-JS-framework kunt gebruiken om gebruikersinterfaces voor uw websites te bouwen, kunt u Visualforce gebruiken om gebruikersinterfaces voor uw Salesforce-applicaties te ontwerpen en te bouwen.

U kunt visualforce gebruiken wanneer u aangepaste pagina's moet maken. Enkele voorbeelden van situaties waarin u Visualforce kunt gebruiken, zijn:

  • Om e-mailsjablonen te bouwen
  • Om een ​​mobiele gebruikersinterface te ontwikkelen
  • Om PDF's te genereren met gegevens die zijn opgeslagen in Salesforce
  • Om ze in uw standaard paginalay-outs in te sluiten
  • Om een ​​standaard Salesforce-pagina te overschrijven
  • Om aangepaste tabbladen voor uw toepassing te ontwikkelen

Een visualforce-pagina bestaat uit twee primaire elementen:

  • Visualforce-opmaak - De visualforce-opmaak omvat de visualforce-tags, HTML, JavaScript of andere web-enabled code.
  • Een Visualforce-controller - De visualforce-controller bevat de instructies die specificeren wat er gebeurt wanneer een gebruiker interactie heeft met een component. De visualforce-controller is geschreven met de programmeertaal Apex.

U kunt een eenvoudige Visualforce-paginacode bekijken, samen met de verschillende componenten hieronder:

Hieronder heb ik je de stappen laten zien om een ​​eenvoudige visualforce-pagina te schrijven voor het weergeven van landen en hun valutawaarden:

Stap 1: Geef vanuit Set-up Visualforce-pagina's op in het vak Snel zoeken, selecteer vervolgens Visualforce-pagina's en klik op Nieuw.

Stap 2: Voeg in de editor de volgende code toe om het land en de valutawaarde weer te geven:

Top

Als u klaar bent met het ontwikkelen van de gebruikersinterface, moet u als Salesforce-ontwikkelaar weten hoe u aangepaste logica aan uw applicatie kunt toevoegen. U kunt controllercode schrijven en aangepaste logica aan uw toepassing toevoegen met behulp van de Apex-programmeertaal. Apex is een objectgeoriënteerde programmeertaal waarmee u stroom- en transactiebeheeroverzichten op het Force.com-platform kunt uitvoeren. Als je de programmeertaal Java eerder hebt gebruikt, kun je Apex gemakkelijk leren. De Apex-syntaxis is voor 70% vergelijkbaar met die van Java.

U kunt Apex gebruiken wanneer u aangepaste logica aan uw toepassing wilt toevoegen. Enkele voorbeelden van situaties waarin u Apex kunt gebruiken, zijn:

ng-change vs onchange
  • Als u web- en e-maildiensten aan uw applicatie wilt toevoegen
  • Als u complexe bedrijfsprocessen wilt uitvoeren
  • Wanneer u complexe validatieregels aan uw applicatie wilt toevoegen
  • Als u een aangepaste logica wilt toevoegen aan bewerkingen zoals het opslaan van een record

Hieronder ziet u een schermafbeelding van Apex-code samen met de verschillende componenten ervan, zoals looping-instructie, control-flow-instructie en SOQL-query:

Nu we hebben begrepen wat Apex is en wanneer we het moeten gebruiken, wil ik dieper ingaan op Apex-programmering.

Programmeren in Apex

Als u de hierboven beschreven concepten heeft begrepen, bent u halverwege uw reis om Salesforce-ontwikkelaar te worden. In dit gedeelte ga ik dieper in op Apex door u informatie te geven over de verschillende gegevenstypen en variabelen, verschillende manieren om gegevens uit de database op te halen en u te laten zien hoe u een klasse en methode schrijft.

Datatypes en variabelen

Salesforce biedt u 4 verschillende datatypes en variabelen. De onderstaande tabel geeft u informatie over elk van de 4 gegevenstypen:

Gegevenstypen en variabelen Omschrijving Voorbeeld
PrimitiefPrimitieve gegevenstypen in Salesforce omvatten booleaans, datum, geheel getal, object, tekenreeks en tijd.Boolean isSunny = true

Geheel getal I = 1

String myString = 'Hallo wereld'

sObjectssObject verwijst naar elk object dat in de database kan worden opgeslagen.Account a = nieuw account ()

MyCustomObj__c obj = nieuwe MyCustomObj__c ()

CollectiesApex heeft de volgende soorten collecties:

  • Lijsten
  • Kaarten
  • Sets
List var_lst = nieuwe lijst ()

Set setOne = nieuwe Set ()

Map var_map = nieuwe kaart ()

EnumsEnums zijn abstracte gegevenstypen met waarden die een eindige set ID's aannemen.Openbare lijst Seizoenen {Winter, Spring, Summer, Fall}


SOQL en SOSL

Om softwaretoepassingen te ontwikkelen, moet u weten hoe u gegevens uit databases moet invoegen en ophalen. In Salesforce kunt u gegevens uit de databases ophalen met SOQL en SOSL. Als u Salesforce-ontwikkelaar wilt worden, moet u beide querytalen kennen. Ik heb u hieronder een gedetailleerde uitleg van deze talen gegeven:

  • SOQL staat voor Salesforce Object Query Language. Met behulp van SOQL-instructies kunt u gegevens uit de database ophalen als een lijst met sObjects, een enkele sObject of een Integer voor telmethode. U kunt de SOQL zien als een equivalent van een SELECT SOQL-query. Ik heb hieronder een voorbeeld van een SOQL-query gegeven:

List accList = [SELECT Id, Name FROM Account WHERE Name = 'YourName']

  • SOSL staat voor Salesforce Object Search Language. U kunt SOSL-instructies gebruiken om een ​​lijst met sObjects op te halen, waarbij elke lijst de zoekresultaten voor een bepaald sObject-type bevat. U kunt SOSL zien als een equivalent van een zoekopdracht in een database. Ik heb hieronder een voorbeeld van een SOSL-zoekopdracht gegeven:

LijstsearchList = [VIND ‘map *’ IN ALLE VELDEN RETOURNEREN Account (Id, Naam), Contactpersoon, Opportunity, Lead]

U kunt SOQL gebruiken als u weet in welk object de gegevens zich bevinden en SOSL gebruiken als u de naam niet weet van het object waarin de gegevens zich bevinden.

Klassen en methoden

Net als in elke andere objectgeoriënteerde programmeertaal, kunt u klassen en methoden ontwikkelen met behulp van Apex. U kunt een klasse zien als een blauwdruk waarmee afzonderlijke objecten worden gemaakt en gebruikt. U kunt een methode zien als een subprogramma, dat op gegevens werkt en een waarde retourneert. Ik heb je de syntaxis gegeven om hieronder een klasse en methode te schrijven:

Ik zal je nu laten zien hoe je een klasse en methode toevoegt in Apex:

Stap 1: Voer vanuit de installatie Apex-klassen in QuickFind Box in, selecteer vervolgens Apex-klassen en klik op Nieuw.

Stap 2: Voeg in de editor de volgende klassendefinitie toe:

Openbare les HelloWorld {

}

Stap 3: Voeg een methodedefinitie toe tussen de openende en sluitende haakjes van de klasse:

Public static void helloWorldMethod (Country__c [] landen) {

Voor (Country__c land: landen) {

country.currency_value__c * = 1.5

}

marionet vs ansible vs chef

}

Stap 4: Klik op Opslaan en je zou je volledige les moeten hebben als:

Openbare les HelloWorld {

Public static void helloWorldMethod (Country__c [] landen) {

Voor (Country__c land: landen) {

country.currency_value__c * = 1.5

}

}

U kunt de syntaxis en het voorbeeld hierboven gebruiken om uw eigen klassen en methoden voor uw Salesforce-applicatie te ontwikkelen. Om een ​​Salesforce-ontwikkelaar te worden, moet u meer weten dan alleen het schrijven van klassen en methoden. In de volgende secties zal ik onderwerpen bespreken die het ontwikkelen van applicaties op het Salesforce-platform eenvoudig en gemakkelijk maken.

Triggers

Elke Salesforce-ontwikkelaar moet het concept van Salesforce-triggers kennen. Mogelijk bent u eerder triggers tegengekomen tijdens het werken met andere databases. Triggers zijn niets anders dan opgeslagen programma's die worden aangeroepen wanneer u acties uitvoert voor of na wijzigingen in Salesforce-records. Triggers kunnen bijvoorbeeld worden uitgevoerd voordat een invoegbewerking wordt uitgevoerd of wanneer een updatebewerking wordt uitgevoerd. Er zijn twee soorten triggers:

  • Voordat trigger - U kunt before triggers gebruiken om recordwaarden bij te werken of te valideren voordat ze in de database worden opgeslagen.
  • Na trigger - U kunt after-triggers gebruiken om toegang te krijgen tot veldwaarden die door het systeem zijn ingesteld en om wijzigingen in andere records te beïnvloeden.

Triggers worden uitgevoerd voor of na de onderstaande bewerkingen:

  • Invoegen
  • Bijwerken
  • Verwijderen
  • Gaan
  • Oeps
  • Verwijderen ongedaan maken

Ik zal je laten zien hoe je een trigger in apex toevoegt door een trigger toe te voegen voor het Country-object dat je in de bovenstaande klasse hebt gezien:

Stap 1: Ga vanuit de objectbeheerinstellingen voor land naar Triggers en klik op Nieuw.

Stap 2: Voeg in de trigger-editor de volgende triggerdefinitie toe:

Trigger HelloWorldTrigger op Country__c (vóór insert) {

Country__c landen = Trigger.new

HelloWorld.helloWorldMethod (landen)

}

De bovenstaande code werkt de valuta van uw land bij voordat u deze in de database invoegt.

Gouverneursgrenzen

U weet wellicht dat Salesforce werkt aan een architectuur met meerdere tenants, dit betekent dat resources worden gedeeld tussen verschillende klanten. Om ervoor te zorgen dat geen enkele klant de gedeelde bronnen monopoliseert, handhaaft de Apex run-time engine strikt de limieten van de overheid. Als uw Apex-code ooit een limiet overschrijdt, geeft de verwachte gouverneur een runtime-uitzondering uit die niet kan worden afgehandeld. Als Salesforce-ontwikkelaar moet je dus heel voorzichtig zijn bij het ontwikkelen van je applicatie.

Bulkbewerkingen

Als Salesforce-ontwikkelaar moet u er altijd voor zorgen dat uw code de gouverneurslimieten handhaaft. Om ervoor te zorgen dat Apex zich aan de limieten van de gouverneur houdt, moet u het ontwerppatroon voor bulkoproepen gebruiken. Een bulkbewerking verwijst naar het vastleggen van meer dan één record wanneer u een DML-bewerking uitvoert. Voordat u een DML-bewerking uitvoert, moet u er altijd voor zorgen dat u de rijen aan een verzameling toevoegt. Hieronder ziet u een afbeelding die u een volledige beschrijving geeft van het ontwerppatroon voor bulkbewerkingen.

DML's en gegevensbewerkingen

U hebt eerder gezien hoe u gegevens uit de database kunt ophalen met behulp van SOQL- en SOSL-query's. Laten we nu eens kijken naar de verschillende uitspraken die u kunt gebruiken om gegevens in de Salesforce-database in te voegen. Voor een Salesforce-ontwikkelaar is het een must om te weten wat deze uitspraken kunnen doen en hoe ze te gebruiken.

DML-verklaring

Omschrijving
InvoegenVoegt een of meer sObjects toe aan de gegevens van uw organisatie
BijwerkenWijzigt een of meer bestaande sObject-records
OepsMaakt nieuwe records en werkt sObject-records bij
VerwijderenVerwijdert een of meer bestaande sObject-records
Verwijderen ongedaan makenHerstelt een of meer bestaande sObject-records
GaanVoegt maximaal drie records van hetzelfde sObject-type samen tot één record

Visualforce en Apex

U heeft een lange weg afgelegd in uw zoektocht om Salesforce-ontwikkelaar te worden. Ik zal vervolgens bespreken hoe u uw visualforce-pagina en uw apex-code kunt integreren. U kunt uw visualforce-pagina en uw apex-code verbinden met behulp van controllers en extensies.

  • Aangepaste controllers -Als u wilt dat uw visualforce-pagina volledig in systeemmodus draait, d.w.z. zonder machtigingen en beveiliging op veldniveau, gebruikt u een aangepaste controller.

  • Controller-extensie -Als u nieuwe acties of functies wilt toevoegen die de functionaliteit van een standaard of aangepaste controller uitbreiden, gebruikt u een controller-extensie.

In de onderstaande code heb ik je laten zien hoe je een aangepaste controller opneemt in je visualforce-pagina:

In de onderstaande code heb ik je laten zien hoe je een controller-extensie kunt opnemen in je visualforce-pagina:

Afhandeling van uitzonderingen

Als je al eerder applicaties hebt ontwikkeld, dan ben je zeker uitzonderingen tegengekomen. Een uitzondering is een speciale voorwaarde die de normale stroom van programma-uitvoering verandert. Bijvoorbeeld een getal delen door nul of toegang krijgen tot een lijstwaarde die buiten het bereik valt. Als u deze uitzonderingen niet afhandelt, stopt de uitvoering van het proces en worden DML's teruggedraaid.

Als Salesforce-ontwikkelaar moet u weten hoe u deze uitzonderingen kunt opvangen en wat u moet doen zodra u ze opmerkt. Om uitzonderingen te vangen, kunt u de try, catch en uiteindelijk construct gebruiken. Zodra u de uitzondering heeft opgemerkt, kunt u deze op de onderstaande manieren afhandelen:

Uitzondering Hoe ermee om te gaan
DMLGebruik de addError () methode voor een record of een veld
VisualforceGebruik de klasse ApexPages.message
Bij uitzondering een e-mail sturenU kunt de ontwikkelaar per e-mail op de hoogte stellen
Inloggen op een aangepast objectU kunt een toekomstige methode gebruiken om een ​​aangepast object te vangen

Tot nu toe heb je in dit Salesforce-ontwikkelaarsblog gezien hoe je je gebruikersinterface kunt ontwikkelen met Visualforce, je hebt gezien hoe je aangepaste logica schrijft met behulp van Apex en verschillende concepten zoals triggers, bulkbewerkingen en het afhandelen van uitzonderingen. Als laatste, maar niet de minste, kijken we naar het Salesforce-testraamwerk.

hoe u microsoft visual studio gebruikt

Testen

Als Salesforce-ontwikkelaar moet u weten hoe u de code die u schrijft, moet testen. Testgestuurde ontwikkeling is een goede manier om het succes van uw softwareapplicatie op lange termijn te garanderen. U moet uw applicatie testen, zodat u kunt valideren dat uw applicatie werkt zoals verwacht. Vooral als u een applicatie voor een klant ontwikkelt, is het testen ervan voordat het eindproduct wordt opgeleverd erg belangrijk. Apex biedt u een testraamwerk waarmee u unit-tests kunt schrijven, de tests kunt uitvoeren, testresultaten kunt controleren en codedekkingsresultaten kunt krijgen.

U kunt uw applicatie op twee manieren testen:

  1. Via de Salesforce-gebruikersinterface is deze manier van testen belangrijk, maar niet alle use-cases voor uw applicaties
  2. U kunt bulkfunctionaliteit testen, tot 200 records kunnen door uw code worden doorgegeven met behulp van SOAP API of Visualforce Standard Set Controller

Testklassen leggen geen gegevens vast in de database en worden geannoteerd met @isTest. Ik heb je laten zien hoe je een testklasse kunt toevoegen door een testklasse toe te voegen aan de HelloWorld-klasse hieronder:

@isTest

privéklasse HelloWorldTestClass {

statische testMethod void validateHelloWorld () {

Country__c country = new Country__c (Name = ”India”, currency_value__c = 50.0)

Land invoegen

country = [SELECT currency_value__c FROM Country WHERE Id = country.Id]

System.assertEquals (75, country.currency_value__c)

}

}

Ik hoop dat je alle concepten hebt begrepen die je nodig hebt om een ​​Salesforce-ontwikkelaar te worden. Voor meer details, ga naar onze die wordt geleverd met door een instructeur geleide live training en real-life projectervaring. Als u opmerkingen heeft, laat deze dan achter in het opmerkingenveld hieronder.