Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

Ändern von Datensätzen mit DML

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, werden Sie

  • verstehen, wie das Abfrageraster in der Entwicklerkonsole zum direkten Manipulieren von Datensätzen verwendet wird.
  • verstehen, wie DML verwendet wird, damit Daten dauerhaft in der Datenbank gespeichert werden.
  • in der Lage sein, die beiden Methoden zum Schreiben von DML-Befehlen zu erkennen.

Verwalten von Daten in der Entwicklerkonsole

Bisher haben wir uns damit beschäftigt, wie die Entwicklerkonsole zum Abfragen von Daten mittels SOQL und SOSL verwendet wird. Wahrscheinlich haben Sie nicht bemerkt, dass in dem in der Entwicklerkonsole angezeigten Bereich mit den Abfrageergebnissen nicht nur die Ergebnisse angezeigt werden, sondern dass er auch als Abfrageraster dient. Sie können in das Ergebnisraster klicken und mithilfe der Schaltflächen unter dem Raster Daten einfügen, aktualisieren oder löschen.

Versuchen wir es.

  1. Wählen Sie unter "Setup" Ihr Name > Developer Console aus, um die Entwicklerkonsole zu öffnen.
  2. Klicken Sie in der Entwicklerkonsole im unteren Bereich auf die Registerkarte Query Editor.
  3. Löschen Sie den vorhandenen Code und fügen Sie den folgenden Ausschnitt ein:
    SELECT Id, Name, Industry FROM Account
    
  4. Klicken Sie auf Execute (Ausführen). In den Abfrageergebnissen werden alle Accounts der Organisation sowie die Anzahl der Zeilen insgesamt angezeigt. Schauen Sie sich an, worum es sich bei diesem Wert handelt.
  5. Klicken Sie auf Insert Row. Oben in dem Raster wird eine neue Zeile hinzugefügt.
  6. Doppelklicken Sie in die neue Zeile, um einen Namen und eine Branche einzugeben, aber lassen Sie das Feld für die ID leer.
  7. Klicken Sie auf Save Rows. Bitte beachten Sie, dass in der ID-Spalte automatisch ein Wert angezeigt wird. Denken Sie daran, dass die ID der Primärschlüssel ist und dass der Wert vom System generiert wurde. Bitte beachten Sie außerdem, dass es sich bei der angezeigten Gesamtzeilenzahl immer noch um den ursprünglichen Wert handelt.
  8. Klicken Sie auf Refresh Grid. Haben Sie es gesehen? Die Gesamtzeilenzahl hat sich um eine Zeile erhöht! Kein schlechtes Tool, oder?

Wir wissen, dass Sie als Entwickler manchmal spontan Daten verwalten müssen und wir wollten Ihnen die Sache so leicht wie möglich machen. Das ist ganz sicher besser, als wenn Sie immer eine INSERT-, UPDATE- oder DELETE-Anweisung eingeben müssen.

Sie können die Datensätze in Salesforce über die Schaltflächen unten rechts in den Abfrageergebnissen auch direkt aufrufen. Probieren Sie es doch selbst einmal aus.

Was ist DML?

Wie Sie in der ersten Lektion gelernt haben, verwendet Salesforce SOQL, um Daten abzufragen; zum Verwalten der Daten kommt jedoch DML zum Einsatz.

Als .NET-Entwickler nutzen Sie in erster Linie SQL, um Daten abzufragen und zu verwalten, sodass es Ihnen ggf. eigenartig vorkommt, eine andere Sprache zu verwenden. Wir gehen jedoch davon aus, dass Sie die Arbeit mit den DML-Befehlen in Salesforce viel einfacher finden werden als die Arbeit mit den SQL-Entsprechungen.

Da Force.com so eng integriert ist, können Sie sich direkt der Bearbeitung Ihrer Daten zuwenden, ohne dass Sie sich um die Verwaltung einer Datenquelle Gedanken machen müssen. Das ist einer der Gründe dafür, warum es sich so leicht mit DML arbeiten lässt.

DML-Anweisungen

Die verfügbaren DML-Anweisungen finden Sie in der Tabelle unten. Einige werden Ihnen wahrscheinlich vertraut vorkommen, und sie funktionieren auch in etwa genau so, wie Sie es erwarten würden. Weitere Informationen finden Sie im Developer’s Guide.

Anweisung Beschreibung
insert (Einfügen) Fügt einen neuen Datensatz ein.
update (Aktualisieren) Aktualisiert einen bestehenden Datensatz.
upsert (Aktualisieren und einfügen) Dies ist ein spezieller Vorgang, bei dem neue Datensätze erstellt und Datensätze innerhalb einer einzelnen Anweisung aktualisiert werden. Er nutzt ein bestimmtes Feld, um zu ermitteln, ob bestehende Objekte vorhanden sind, oder das ID-Feld, wenn kein Feld angegeben ist.
delete (Löschen) Löscht einen bestehenden Datensatz.
undelete (Löschen rückgängig) Stellt einen oder mehrere bestehende Datensätze aus dem Papierkorb wieder her.
merge (Zusammenführen) Dies ist ein weiterer spezieller Vorgang, bei dem bis zu drei Datensätze desselben Objekttyps zu einem Datensatz zusammengeführt werden können. Die anderen Datensätze werden anschließend gelöscht und damit verbundene Datensätze neu zugeordnet.

Zwei Methoden zum Ausführen von DML-Anweisungen

In Apex können Sie DML-Anweisungen auf zwei verschiedene Arten ausführen.

  • Verwenden der Anweisung selbst: Diese Methode haben Sie bereits in der Lektion über SOSL kennen gelernt, in der wir Account- und Kontaktdaten eingefügt haben. Diese Methode ist am einfachsten. Falls Sie sich nicht erinnern, hier etwas Code aus dem SOSL-Kapitel. Ein einzelner Account wurde mithilfe der DML-Anweisung 'insert' eingefügt.
    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    insert acct;
    
  • Verwenden der Methoden der 'Database'-Klasse: Der Vorteil der Verwendung der Methode der "Database"-Klasse besteht darin, dass Sie Zugang zu dem optionalen Parameter allOrNone haben um anzugeben, ob der Vorgang teilweise erfolgreich sein kann. Wenn dieser Parameter auf 'false' gesetzt wird, werden die erfolgreichen Datensätze übernommen, wenn in einer Teilmenge der Datensätze Fehler auftreten. Für die fehlgeschlagenen Datensätze werden Fehler zurückgegeben. Zudem werden mit der Option für Teilerfolg keine Ausnahmen ausgelöst. Wenn Sie beispielsweise einen Account erstellen, bei dem der Parameter allOrNone auf FALSE festgelegt ist, und die Info zum Erfolg oder Fehlschlag in einem Array speichern, sieht dies wie folgt aus.
    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    Database.SaveResult[] results = Database.insert(acct, false);
    

Weitere Infos

Der Parameter 'allOrNone' ist standardmäßig auf 'true' gesetzt, was bedeutet, dass sich die 'Database'-Methode wie die ihr entsprechende DML-Anweisung verhält und eine Ausnahme auslöst, wenn ein Fehler auftritt. Weitere Informationen finden Sie in den offiziellen Unterlagen.

Wenn Sie zu einem DML-Rockstar werden wollen, schließen Sie das Modul Apex – Grundlagen und Datenbank ab. Es enthält weitere Informationen darüber, wie Datensätze mit Teilerfolg eingefügt werden und wie verbundene Datensätze eingefügt werden.

Ressourcen

Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"