Streben Sie danach, Softwareanwendungsentwickler zu werden? Möchten Sie Ihre eigene Anwendung auf der Force.com-Plattform erstellen? Wenn Sie diese Fragen mit Ja beantworten, sollten Sie auf jeden Fall in Betracht ziehen, Salesforce-Entwickler zu werden.
In meinen vorherigen Blogs habe ich darüber diskutiert , Salesforce-Zertifizierungen und dir auch gezeigt Erstellen Sie eine benutzerdefinierte Anwendung Verwenden der in Salesforce verfügbaren deklarativen Optionen. In diesem Blog werde ich die in Salesforce verfügbaren Programmoptionen für die Entwicklung Ihrer Anwendung erläutern.
MVC-Architektur
Bevor ich mich mit dem Erstellen einer Anwendung mit Visualforce und Apex befasse, werde ich zunächst die Salesforce Model-View-Controller-Architektur erläutern. Im Folgenden finden Sie ein Diagramm, in dem die Salesforce Model-View-Controller-Architektur zusammen mit den verschiedenen Salesforce-Komponenten dargestellt ist.
Modell: Das Modell sind Ihre Salesforce-Datenobjekte, -Felder und -Beziehungen. Es besteht aus Standardobjekten (Konto, Opportunity usw.) und benutzerdefinierten Objekten (von Ihnen erstellte Objekte).
Aussicht: Die Ansicht repräsentiert die Darstellung der Daten, d. H. Der Benutzeroberfläche. In Salesforce besteht die Ansicht aus den Visualforce-Seiten, -Komponenten, Seitenlayouts und Registerkarten.
Regler: Die Steuerung ist der Baustein der eigentlichen Anwendungslogik. Sie können Aktionen ausführen, wenn der Benutzer mit Visualforce interagiert.
Salesforce in Aktion
Um ein Salesforce-Entwickler zu sein, müssen Sie zunächst wissen, wie Salesforce-Anwendungen funktionieren. Unten ist ein Bild Hier erhalten Sie ein vollständiges Bild von Salesforce in Aktion. Der Client oder Benutzer fordert Informationen an oder stellt Informationen für die Salesforce-Anwendung bereit. Dies erfolgt in der Regel mit Visualforce. Diese Informationen werden dann an die in Apex geschriebene Anwendungslogikschicht weitergeleitet. Abhängig von den Informationen werden Daten entweder eingefügt oder aus der Datenbank entfernt. Salesforce bietet Ihnen auch die Möglichkeit, mithilfe von Webdiensten direkt auf die Anwendungslogik zuzugreifen.
Ein Salesforce-Entwickler kann sich der Entwicklung entweder mit deklarativen oder programmatischen Optionen nähern. Unten finden Sie ein Bild, das Ihnen Details zu den deklarativen und programmatischen Ansätzen bietet, die auf der Ebene der Benutzeroberfläche, der Geschäftslogik und des Datenmodells verfügbar sind. Zum Erstellen Ihrer Benutzeroberfläche können Sie entweder den deklarativen Ansatz verwenden, der Seitenlayouts und Datensatztypen verwendet, oder einen programmatischen Ansatz wie Visualforce-Seiten und -Komponenten verwenden. Im Allgemeinen sollten Sie den programmatischen Ansatz nur verwenden, wenn Sie mit dem deklarativen Ansatz nicht die erforderliche Benutzeroberfläche erreichen können. Um die Geschäftslogikschicht Ihrer Anwendung zu entwickeln, können Sie entweder die deklarativen Salesforce-Optionen für Workflows, Validierungsregeln und Genehmigungsprozesse verwenden oder programmatische Ansätze wie Trigger, Controller und Klassen verwenden. Um auf das Datenmodell zuzugreifen, können Sie den deklarativen Ansatz mithilfe von Objekten, Feldern und Beziehungen verwenden. Sie können auch programmgesteuert über die Metadaten-API, die REST-API und die Massen-API auf das Datenmodell zugreifen.
Wir haben gesehen, wie Salesforce-Anwendungen funktionieren, welche MVC-Architektur für die Entwicklung in Salesforce verwendet wird und welche zwei unterschiedlichen Ansätze für einen Salesforce-Entwickler verfügbar sind. Lassen Sie mich nun über Visualforce und Apex sprechen.
Visualforce
Um Anwendungen auf der Salesforce-Plattform zu erstellen, müssen Sie wissen, wie Sie eine Benutzeroberfläche entwickeln und Anwendungslogik schreiben. Als Salesforce-Entwickler können Sie die Benutzeroberfläche mit Visualforce entwickeln. Visualforce ist das Benutzeroberflächen-Framework für die Force.com-Plattform. Genau wie Sie das Javascript Angular-JS-Framework zum Erstellen von Benutzeroberflächen für Ihre Websites verwenden können, können Sie mit Visualforce Benutzeroberflächen für Ihre Salesforce-Anwendungen entwerfen und erstellen.
Sie können Visualforce verwenden, wenn Sie benutzerdefinierte Seiten erstellen müssen. Einige Beispiele für Situationen, in denen Sie Visualforce verwenden können, sind:
- So erstellen Sie E-Mail-Vorlagen
- Mobile Benutzeroberfläche entwickeln
- So generieren Sie PDFs mit in Salesforce gespeicherten Daten
- Einbetten in Ihre Standardseitenlayouts
- So überschreiben Sie eine Standard-Salesforce-Seite
- So entwickeln Sie benutzerdefinierte Registerkarten für Ihre Anwendung
Eine Visualforce-Seite besteht aus zwei Hauptelementen:
- Visualforce-Markup - Das Visualforce-Markup enthält die Visualforce-Tags, HTML, JavaScript oder anderen webfähigen Code.
- Ein Visualforce-Controller - Der Visualforce-Controller enthält Anweisungen, die angeben, was passiert, wenn ein Benutzer mit einer Komponente interagiert. Der Visualforce-Controller wird mit der Programmiersprache Apex geschrieben.
Sie können sich einen einfachen Visualforce-Seitencode zusammen mit den folgenden Komponenten ansehen:
Im Folgenden habe ich Ihnen die Schritte zum Schreiben einer einfachen Visualforce-Seite zum Anzeigen von Ländern und deren Währungswerten gezeigt:
Schritt 1: Geben Sie unter Setup im Feld Schnellsuche Visualforce-Seiten ein, wählen Sie Visualforce-Seiten aus und klicken Sie auf Neu.
Schritt 2: Fügen Sie im Editor den folgenden Code hinzu, um das Land und seinen Währungswert anzuzeigen:
MySQL Workbench Tutorial für Anfänger
Apex
Wenn Sie mit der Entwicklung der Benutzeroberfläche fertig sind, müssen Sie als Salesforce-Entwickler wissen, wie Sie Ihrer Anwendung benutzerdefinierte Logik hinzufügen können. Mit der Programmiersprache Apex können Sie Controller-Code schreiben und Ihrer Anwendung benutzerdefinierte Logik hinzufügen. Apex ist eine objektorientierte Programmiersprache, mit der Sie Flow- und Transaktionssteuerungsanweisungen auf der Force.com-Plattform ausführen können. Wenn Sie zuvor die Programmiersprache Java verwendet haben, können Sie Apex problemlos lernen. Die Apex-Syntax ähnelt zu 70% der von Java.
Sie können Apex verwenden, wenn Sie Ihrer Anwendung benutzerdefinierte Logik hinzufügen möchten. Einige Beispiele für Situationen, in denen Sie Apex verwenden können, sind:
- Wenn Sie Ihrer Anwendung Web- und E-Mail-Dienste hinzufügen möchten
- Wenn Sie komplexe Geschäftsprozesse ausführen möchten
- Wenn Sie Ihrer Anwendung komplexe Validierungsregeln hinzufügen möchten
- Wenn Sie eine benutzerdefinierte Logik für Vorgänge wie das Speichern eines Datensatzes hinzufügen möchten
Unten sehen Sie einen Screenshot des Apex-Codes mit seinen verschiedenen Komponenten wie Schleifenanweisung, Kontrollflussanweisung und SOQL-Abfrage:
Nachdem wir verstanden haben, was Apex ist und wann es verwendet werden soll, möchte ich mich eingehend mit der Apex-Programmierung befassen.
Programmieren in Apex
Wenn Sie die oben beschriebenen Konzepte verstanden haben, befinden Sie sich auf halbem Weg als Salesforce-Entwickler. In diesem Abschnitt werde ich mich eingehender mit Apex befassen, indem ich Ihnen Informationen zu den verschiedenen Datentypen und Variablen sowie verschiedene Methoden zum Abrufen von Daten aus der Datenbank zur Verfügung stelle und Ihnen zeige, wie Sie eine Klasse und Methode schreiben.
Datentypen und Variablen
Salesforce bietet Ihnen 4 verschiedene Datentypen und Variablen. In der folgenden Tabelle finden Sie Informationen zu jedem der 4 Datentypen:
Datentypen und Variablen | Beschreibung | Beispiel |
Primitive | Zu den primitiven Datentypen in Salesforce gehören Boolescher Wert, Datum, Ganzzahl, Objekt, Zeichenfolge und Uhrzeit. | Boolean isSunny = true Ganzzahl I = 1 String myString = 'Hallo Welt' |
sObjekte | sObject bezieht sich auf jedes Objekt, das in der Datenbank gespeichert werden kann. | Konto a = neues Konto () MyCustomObj__c obj = new MyCustomObj__c () |
Sammlungen | Apex hat die folgenden Arten von Sammlungen:
| Liste var_lst = neue Liste () Set setOne = new Set () Map var_map = neue Map () |
Aufzählungen | Aufzählungen sind abstrakte Datentypen mit Werten, die eine endliche Menge von Bezeichnern annehmen. | Öffentliche Aufzählung Jahreszeiten {Winter, Frühling, Sommer, Herbst} |
SOQL und SOSL
Für die Entwicklung von Softwareanwendungen müssen Sie wissen, wie Sie Daten aus Datenbanken einfügen und abrufen. In Salesforce können Sie mit SOQL und SOSL Daten aus den Datenbanken abrufen. Wenn Sie Salesforce-Entwickler werden möchten, müssen Sie beide Abfragesprachen kennen. Ich habe Ihnen nachfolgend eine ausführliche Erklärung dieser Sprachen gegeben:
- SOQL steht für Salesforce Object Query Language. Mit SOQL-Anweisungen können Sie Daten aus der Datenbank als Liste von sObjects, als einzelnes sObject oder als Integer for count-Methode abrufen. Sie können sich SOQL als Äquivalent einer SELECT SOQL-Abfrage vorstellen. Ich habe unten ein Beispiel für eine SOQL-Abfrage bereitgestellt:
List accList = [SELECT ID, Name FROM Account WHERE Name = ”YourName”]
- SOSL steht für Salesforce Object Search Language. Mit SOSL-Anweisungen können Sie eine Liste von sObjects abrufen, wobei jede Liste die Suchergebnisse für einen bestimmten sObject-Typ enthält. Sie können sich SOSL als Äquivalent zu einer Datenbanksuchabfrage vorstellen. Ich habe unten ein Beispiel für eine SOSL-Abfrage bereitgestellt:
Liste
searchList = [FIND ‘map *’ IN ALLEN FELDERN RÜCKGABE Konto (ID, Name), Kontakt, Opportunity, Lead]
Sie können SOQL verwenden, wenn Sie wissen, in welchem Objekt sich die Daten befinden, und SOSL verwenden, wenn Sie den Namen des Objekts nicht kennen, in dem sich die Daten befinden.
Klassen und Methoden
Wie in jeder anderen objektorientierten Programmiersprache können Sie mit Apex Klassen und Methoden entwickeln. Sie können sich eine Klasse als Blaupause vorstellen, mit der einzelne Objekte erstellt und verwendet werden. Sie können sich eine Methode als Unterprogramm vorstellen, das auf Daten einwirkt und einen Wert zurückgibt. Ich habe Ihnen die Syntax zum Schreiben einer Klasse und Methode unten gegeben:
Ich werde Ihnen jetzt zeigen, wie Sie eine Klasse und eine Methode in Apex hinzufügen:
Schritt 1: Geben Sie im Setup Apex-Klassen in das QuickFind-Feld ein, wählen Sie Apex-Klassen aus und klicken Sie auf Neu.
Schritt 2: Fügen Sie im Editor die folgende Klassendefinition hinzu:
Öffentliche Klasse HelloWorld {
}}
Schritt 3: Fügen Sie eine Methodendefinition zwischen den Klammern zum Öffnen und Schließen der Klasse hinzu:
Öffentliche statische Leere helloWorldMethod (Country__c [] Länder) {
Für (Land__c Land: Länder) {
country.currency_value__c * = 1.5
}}
}}
Schritt 4: Klicken Sie auf Speichern und Sie sollten Ihre vollständige Klasse haben als:
Öffentliche Klasse HelloWorld {
Öffentliche statische Leere helloWorldMethod (Country__c [] Länder) {
Für (Land__c Land: Länder) {
country.currency_value__c * = 1.5
}}
}}
Mithilfe der oben gezeigten Syntax und des Beispiels können Sie Ihre eigenen Klassen und Methoden für Ihre Salesforce-Anwendung entwickeln. Um Salesforce-Entwickler zu werden, müssen Sie mehr als nur Klassen und Methoden schreiben. In den nächsten Abschnitten werde ich Themen diskutieren, die das Entwickeln von Anwendungen auf der Salesforce-Plattform einfach und unkompliziert machen.
Löst aus
Jeder Salesforce-Entwickler muss das Konzept der Salesforce-Trigger kennen. Möglicherweise sind Sie zuvor bei der Arbeit mit anderen Datenbanken auf Trigger gestoßen. Trigger sind nichts anderes als gespeicherte Programme, die aufgerufen werden, wenn Sie Aktionen vor oder nach Änderungen an Salesforce-Datensätzen ausführen. Beispielsweise können Trigger ausgeführt werden, bevor eine Einfügeoperation ausgeführt wird oder wenn eine Aktualisierungsoperation ausgeführt wird. Es gibt zwei Arten von Triggern:
- Vor dem Auslösen - Sie können vor Auslösern verwenden, um Datensatzwerte zu aktualisieren oder zu validieren, bevor sie in der Datenbank gespeichert werden.
- Nach dem Auslösen - Mit After-Triggern können Sie auf vom System festgelegte Feldwerte zugreifen und Änderungen in anderen Datensätzen beeinflussen.
Trigger werden vor oder nach den folgenden Operationen ausgeführt:
- Einfügen
- Aktualisieren
- Löschen
- Gehen
- Hoppla
- Wiederherstellen
Ich werde Ihnen zeigen, wie Sie einen Trigger in Apex hinzufügen, indem Sie einen Trigger für das Country-Objekt hinzufügen, das Sie in der obigen Klasse gesehen haben:
Schritt 1: Gehen Sie in den Objektverwaltungseinstellungen für das Land zu Trigger und klicken Sie auf Neu.
Schritt 2: Fügen Sie im Trigger-Editor die folgende Trigger-Definition hinzu:
Trigger HelloWorldTrigger auf Country__c (vor dem Einfügen) {
Land__c Länder = Trigger.new
HelloWorld.helloWorldMethod (Länder)
}}
Der obige Code aktualisiert die Währung Ihres Landes vor jeder Einfügung in die Datenbank.
Gouverneur Grenzen
Möglicherweise wissen Sie, dass Salesforce mit einer mandantenfähigen Architektur arbeitet. Dies bedeutet, dass Ressourcen von verschiedenen Clients gemeinsam genutzt werden. Um sicherzustellen, dass kein Client die gemeinsam genutzten Ressourcen monopolisiert, setzt die Apex-Laufzeit-Engine die Governor-Limits strikt durch. Wenn Ihr Apex-Code jemals ein Limit überschreitet, gibt der erwartete Governor eine Laufzeitausnahme aus, die nicht behandelt werden kann. Als Salesforce-Entwickler müssen Sie bei der Entwicklung Ihrer Anwendung sehr vorsichtig sein.
Massenoperationen
Als Salesforce-Entwickler müssen Sie immer sicherstellen, dass Ihr Code die Governor-Grenzwerte einhält. Um sicherzustellen, dass Apex die Governor-Grenzwerte einhält, müssen Sie das Entwurfsmuster für Massenaufrufe verwenden. Eine Massenoperation bezieht sich auf das Festschreiben von mehr als einem Datensatz, wenn Sie eine DML-Operation ausführen. Bevor Sie eine DML-Operation ausführen, müssen Sie immer sicherstellen, dass Sie die Zeilen zu einer Sammlung hinzufügen. Unten sehen Sie ein Bild, das Ihnen eine vollständige Beschreibung des Entwurfsmusters für Massenoperationen gibt.
DMLs und Datenoperationen
Sie haben bereits gesehen, wie Sie mithilfe von SOQL- und SOSL-Abfragen Daten aus der Datenbank abrufen. Schauen wir uns nun die verschiedenen Anweisungen an, mit denen Sie Daten in die Salesforce-Datenbank einfügen können. Für einen Salesforce-Entwickler ist es ein Muss zu wissen, was diese Anweisungen können und wie sie verwendet werden.
DML-Anweisung | Beschreibung |
Einfügen | Fügt den Daten Ihrer Organisation ein oder mehrere sObjects hinzu |
Aktualisieren | Ändert einen oder mehrere vorhandene sObject-Datensätze |
Hoppla | Erstellt neue Datensätze und aktualisiert sObject-Datensätze |
Löschen | Löscht einen oder mehrere vorhandene sObject-Datensätze |
Wiederherstellen | Stellt einen oder mehrere vorhandene sObject-Datensätze wieder her |
Gehen | Fügt bis zu drei Datensätze desselben sObject-Typs zu einem Datensatz zusammen |
Visualforce und Apex
Sie haben einen langen Weg zurückgelegt, um Salesforce-Entwickler zu werden. Als nächstes werde ich diskutieren, wie Sie Ihre Visualforce-Seite und Ihren Apex-Code integrieren können. Sie können Ihre Visualforce-Seite und Ihren Apex-Code mithilfe von Controllern und Erweiterungen verbinden.
Benutzerdefinierte Controller -Verwenden Sie einen benutzerdefinierten Controller, wenn Ihre Visualforce-Seite vollständig im Systemmodus ausgeführt werden soll, d. H. Ohne Berechtigungen und Sicherheit auf Feldebene.
Controller-Erweiterung -Verwenden Sie eine Controller-Erweiterung, wenn Sie neue Aktionen oder Funktionen hinzufügen möchten, die die Funktionalität eines Standard- oder benutzerdefinierten Controllers erweitern.
Im folgenden Code habe ich Ihnen gezeigt, wie Sie einen benutzerdefinierten Controller in Ihre Visualforce-Seite aufnehmen können:
Im folgenden Code habe ich Ihnen gezeigt, wie Sie die Controller-Erweiterung in Ihre Visualforce-Seite aufnehmen können:
Sortieren eines Arrays c ++
Ausnahmebehandlung
Wenn Sie bereits Anwendungen entwickelt haben, sind Sie definitiv auf Ausnahmen gestoßen. Eine Ausnahme ist eine spezielle Bedingung, die den normalen Ablauf der Programmausführung ändert. Teilen Sie beispielsweise eine Zahl durch Null oder greifen Sie auf einen Listenwert zu, der außerhalb der Grenzen liegt. Wenn Sie diese Ausnahmen nicht behandeln, wird die Ausführung des Prozesses gestoppt und DMLs werden zurückgesetzt.
Als Salesforce-Entwickler müssen Sie wissen, wie diese Ausnahmen abgefangen werden und was zu tun ist, wenn Sie sie abfangen. Um Ausnahmen abzufangen, können Sie try, catch und finally construct verwenden. Sobald Sie die Ausnahme abgefangen haben, können Sie sie wie folgt behandeln:
Ausnahme | Wie man damit umgeht |
DML | Verwenden Sie die Methode addError () für einen Datensatz oder ein Feld |
Visualforce | Verwenden Sie die Klasse ApexPages.message |
Senden einer E-Mail in Ausnahmefällen | Sie können den Entwickler per E-Mail benachrichtigen |
Anmelden eines benutzerdefinierten Objekts | Sie können eine zukünftige Methode verwenden, um ein benutzerdefiniertes Objekt abzufangen |
Bis jetzt haben Sie in diesem Salesforce-Entwicklerblog gesehen, wie Sie Ihre Benutzeroberfläche mit Visualforce entwickeln, wie Sie benutzerdefinierte Logik mit Apex und verschiedenen Konzepten wie Triggern, Massenoperationen und Ausnahmebehandlung schreiben. Last but not least werfen wir einen Blick auf das Salesforce-Testframework.
Testen
Als Salesforce-Entwickler müssen Sie wissen, wie Sie den von Ihnen geschriebenen Code testen. Testgetriebene Entwicklung ist ein guter Weg, um den langfristigen Erfolg Ihrer Softwareanwendung sicherzustellen. Sie müssen Ihre Anwendung testen, damit Sie überprüfen können, ob Ihre Anwendung wie erwartet funktioniert. Insbesondere wenn Sie eine Anwendung für einen Kunden entwickeln, ist es sehr wichtig, diese vor der Lieferung des Endprodukts zu testen. Apex bietet Ihnen ein Testframework, mit dem Sie Komponententests schreiben, Tests ausführen, Testergebnisse überprüfen und Ergebnisse zur Codeabdeckung erzielen können.
Sie können Ihre Anwendung auf zwei Arten testen:
- Über die Salesforce-Benutzeroberfläche ist diese Art des Testens wichtig, erfasst jedoch nicht alle Anwendungsfälle für Ihre Anwendungen
- Sie können die Bulk-Funktionalität testen. Bis zu 200 Datensätze können mithilfe der SOAP-API oder des Visualforce-Standard-Set-Controllers durch Ihren Code geleitet werden
Testklassen schreiben keine Daten in die Datenbank und werden mit @isTest kommentiert. Ich habe Ihnen gezeigt, wie Sie eine Testklasse hinzufügen, indem Sie der folgenden HelloWorld-Klasse eine Testklasse hinzufügen:
@isTest
private Klasse HelloWorldTestClass {
statische Testmethode void validateHelloWorld () {
Land__c Land = neues Land__c (Name = 'Indien', Währungswert__c = 50,0)
Land einfügen
country = [SELECTrency_value__c FROM Country WHERE Id = country.Id]
System.assertEquals (75, country.currency_value__c)
}}
}}
Ich hoffe, Sie haben alle Konzepte verstanden, die Sie als Salesforce-Entwickler benötigen. Weitere Informationen finden Sie in unserem Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Wenn Sie Kommentare haben, hinterlassen Sie diese bitte im Kommentarfeld unten.