Skip to main content

Erstellen von Beziehungsabfragen mit benutzerdefinierten Objekten

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Interpretieren von Diagrammen im Schemagenerator zur Bestimmung von Objektbeziehungen
  • Bestimmen des Namens der benutzerdefinierten Beziehung, die in Abfragen benutzerdefinierter Objekte verwendet werden soll
  • Erstellen einer Abfrage einer Unter-/Überordnungsbeziehung für benutzerdefinierte Objekte
  • Erstellen einer Abfrage einer Über-/Unterordnungsbeziehung für benutzerdefinierte Objekte
Hinweis

Hinweis

Lernen Sie auf Deutsch? In diesem Badge ist für die praktischen Trailhead-Aufgaben Englisch als Bearbeitungssprache festgelegt. Übersetzungen werden zur Referenz in Klammern angegeben. Vergewissern Sie sich, dass Sie in Ihrem Trailhead-Playground (1) das Gebietsschema auf USA und (2) die Sprache auf Englisch festgelegt haben. (3) Verwenden Sie zum Kopieren und Einfügen nur die englischen Werte. Die zugehörigen Anweisungen finden Sie hier.

Weitere Details dazu, wie Sie die übersetzte Trailhead-Umgebung optimal nutzen können, finden Sie unter dem Badge "Trailhead in Ihrer Sprache".

Mit Trail Together einem Dozenten folgen

Möchten Sie bei diesem Schritt einem Experten folgen? Schauen Sie sich dieses Video an, das Teil der Reihe "Trail Together" auf Trailhead Live ist.

(Dieser Clip beginnt bei Minute 51:38, für den Fall, dass Sie zurückspringen und den Anfang des Schritts noch einmal sehen möchten.)

Starten Ihres Trailhead Playground und Installieren eines Pakets

Die Beispiele und praktischen Übungen im weiteren Verlauf dieses Moduls basieren auf einer Beispielanwendung für die Immobilienbranche namens DreamHouse. Lassen Sie uns die Anwendung in Ihrem Trailhead Playground installieren und Beispieldaten importieren.

Falls noch nicht erfolgt, starten Sie Ihren Trailhead Playground. Wenn Sie in Ihrer Organisation eine Registerkarte mit der Bezeichnung "Paket installieren" sehen, großartig! Fahren Sie dann gleich mit Schritt 1 fort. Falls nicht, suchen und öffnen Sie im App Launcher (App Launcher) Playground Starter und befolgen Sie die Anweisungen. Wenn Sie die Anwendung Playground Starter nicht sehen, kopieren Sie diesen Link zum Paket für DreamHouse und lesen Sie in der Trailhead-Hilfe den Artikel zum Installieren eines Pakets oder einer Anwendung zum Absolvieren einer Trailhead-Aufgabe.

  1. Klicken Sie auf die Registerkarte Paket installieren.
  2. Fügen Sie 04t3h000004mBpiAAE in das Feld ein.
  3. Klicken Sie auf Installieren.
  4. Wählen Sie Nur für Administratoren installieren aus und klicken Sie dann auf Installieren.
  5. Wenn Sie aufgefordert werden, Drittanbieterzugriff zu genehmigen, wählen Sie Ja, Zugriff auf diese Drittanbieter-Websites gewähren und klicken dann auf Weiter.

Nach Installation des Pakets sehen Sie eine Bestätigungsseite und erhalten eine E-Mail an die Adresse, die mit Ihrem Playground verknüpft ist.

Importieren der DreamHouse-Daten

  1. Klicken Sie auf App Launcher, geben Sie Dream in das Feld "Search (Suchen)" ein und wählen Sie dann die Anwendung DreamHouse aus.
  2. Klicken Sie auf die Registerkarte Settings (Einstellungen). (Wenn die Registerkarte "Settings" (Einstellungen) nicht angezeigt wird, erweitern Sie die Liste More [Mehr].)
  3. Klicken Sie auf Daten importieren.
  4. Klicken Sie auf die Registerkarte Properties (Immobilien) und machen Sie sich mit den Beispieldaten vertraut.

Erkunden des DreamHouse-Schemas

Bislang haben wir nur Standardobjekte abgefragt. Nun befassen wir uns mit dem Abfragen benutzerdefinierter Objekte. Da wir Objekte in der Anwendung DreamHouse verwenden, schauen wir uns als Erstes das DreamHouse-Schema (Datenmodell) an, um zu verstehen, wie die Daten strukturiert sind.

Öffnen des Schemagenerators

  1. Klicken Sie in Ihrem Trailhead Playground auf Setup und wählen Sie Setup aus.
  2. Klicken Sie auf Objekt-Manager.
  3. Klicken Sie auf Schemagenerator.
  4. Klicken Sie auf der Registerkarte "Objekte" auf Alle löschen.
  5. Wenn Sie "Broker" und nicht "Broker__c" sehen, klicken Sie auf Anzeigeoptionen und wählen dann Elementnamen anzeigen aus.
  6. Denken Sie daran, dass wir im Code die API-Feldnamen verwenden. In "Elementnamen anzeigen" werden API-Feldnamen anstelle von Feldbezeichnungen gezeigt. (Der API-Name eines benutzerdefinierten Objekts ist der Name des benutzerdefinierten Objekts mit angefügtem __c [Unterstrich Unterstrich c] am Ende.)

  7. Wählen Sie in der Liste "Auswählen aus" die Option Benutzerdefinierte Objekte aus.
  8. Wählen Sie Broker__c und Property__c aus. Diese benutzerdefinierten Objekte verwenden wir in dieser Einheit.
  9. Klicken Sie auf Automatisches Layout.
  10. Untersuchen Sie die Immobilienfelder.
  11. Das benutzerdefinierte Objekt "Property__c" hat zwei benutzerdefinierte Felder: Picture__c und Broker__c. (Der API-Name eines benutzerdefinierten Felds ist der Name des benutzerdefinierten Felds mit angefügtem __c [Unterstrich Unterstrich c] am Ende.)

    Schemagenerator mit Anzeige der benutzerdefinierten Objekte Broker__c und Property__c. Für das benutzerdefinierte Objekt Property__c sind die benutzerdefinierten Felder Broker__c und Picture__c hervorgehoben.

  12. Bewegen Sie den Mauszeiger über die Beziehungslinie, die Property__c mit Broker__c verbindet.
  13. Es besteht eine Nachschlagebeziehung vom benutzerdefinierten Feld Broker__c im benutzerdefinierten Objekt Property__c zum benutzerdefinierten Objekt Broker__c.

    Die benutzerdefinierten Objekte Broker__c und Property__c im Schemagenerator. Das benutzerdefinierte Feld Broker__c im Objekt Property__c hat eine Nachschlagebeziehung vom benutzerdefinierten Objekt Property__c zum benutzerdefinierten Objekt Broker__c.

  14. Klicken Sie im Element Property__c auf das Zahnradsymbol und wählen Sie dann Objekt anzeigen aus.
    Der Objekt-Manager wird geöffnet und zeigt das Objekt Property__c an.
  15. Klicken Sie auf Felder & Beziehungen.
  16. Klicken Sie auf die Feldbezeichnung Broker.
  17. Suchen Sie im Abschnitt "Nachschlageoptionen" den Namen der untergeordneten Beziehung.

Jetzt wissen wir, dass Property__c ein untergeordnetes Element von Broker__c ist und dass der Name der Beziehung zwischen einer Eigenschaft und einem Broker "Properties" ist. (Zur Erinnerung: Der Beziehungsname ist normalerweise die Pluralform des Namens des untergeordneten Objekts.)

Abfragen benutzerdefinierter Objekte

Das Abfragen eines benutzerdefinierten Objekts ist dem Abfragen eines Standardobjekts sehr ähnlich, allerdings gibt es ein paar Unterschiede.

Sehen wir uns diese Anforderung an:

"Eine Liste aller Immobilien mit Adresse, Bild und zugewiesenem Makler abrufen."

Das klingt einfach, oder? Wir fragen das benutzerdefinierte Objekt Property__c ab und erhalten die benutzerdefinierten Felder Address__c, Picture__c und Broker__c. Probieren wir es aus.

Erstellen einer Abfrage

  1. Geben Sie im Query Editor Folgendes ein:
    SELECT Address__c, Picture__c, Broker__c FROM Property__c
  2. Klicken Sie auf Execute (Ausführen).
    Die ersten sechs Zeilen Ihrer Ergebnisse sollten wie folgt lauten:
    Abfrageergebnis – Zeilen insgesamt: 12
    Address__c
    Picture__c
    Broker__c
    18 Henry st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    24 Pearl st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    72 Francis st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    32 Prince st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    110 Baxter st
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...
    448 Hannover St
    https://s3-us-west-2.amazonaws.com...
    a016g000007Yxfn...

Sie werden feststellen, dass der Inhalt der Spalte Broker__c nicht sehr nützlich ist. Das liegt daran, dass das Feld Broker__c im Objekt Property__c ein Nachschlagefeld für das Objekt "Broker" (Makler) ist. Felder mit Nachschlagebeziehungen enthalten die Id des zugehörigen Objekts. Um den Namen des Brokers zu erhalten, benötigen wir eine Beziehungsabfrage.

Erstellen einer Abfrage einer Unter-/Überordnungsbeziehung

Da Broker__c das übergeordnete Objekt von Property__c ist, benötigen wir eine Abfrage der Unter-/Überordnungsbeziehung. Wir verwenden den Beziehungsnamen und die Punktnotation, um das Feld "Name" des Objekts Broker__c abzurufen.

  1. Ändern Sie im Query Editor Broker__c in Broker__c.Name, etwa so:
    SELECT Address__c, Picture__c, Broker__c.Name FROM Property__c
  2. Klicken Sie auf Execute (Ausführen). (Ihnen wird eine Fehlermeldung angezeigt.)
    Fehlermeldung
    Beziehung 'Broker__c' im Feldpfad nicht verständlich. Wenn Sie versuchen, eine benutzerdefinierte Beziehung zu verwenden, müssen Sie an den Namen der benutzerdefinierten Beziehung '__r' anhängen.

Hoppla! Was ist passiert? Denken Sie daran, dass Broker__c ein benutzerdefiniertes Feld des Objekts "Property" ist. Was wir benötigen, ist das mit Broker__c verknüpfte Objekt.

Verwenden des Namens der benutzerdefinierten Beziehung in der Abfrage

Um das mit Broker__c verknüpfte Objekt (nicht das Feld Broker__c) anzugeben, ändern wir __c in __r (Unterstrich-Unterstrich-r). Broker__r ist der Name der benutzerdefinierten Beziehung. Er gibt an, dass wir die Beziehung von Property__c zum Objekt Broker__c durchlaufen möchten. Dieser Teil der Abfrage besagt: "Das Feld 'Name' aus dem zugehörigen benutzerdefinierten Objekt Broker__c abrufen". Lassen Sie uns unsere Abfrage aktualisieren.

  1. Ändern Sie im Query Editor Broker__c in Broker__r, etwa so:
    SELECT Address__c, Picture__c, Broker__r.Name FROM Property__c
  2. Klicken Sie auf Execute (Ausführen).

    Die ersten sechs Zeilen der Ergebnisse sollten wie folgt lauten:
    Abfrageergebnis – Zeilen insgesamt: 12
    Address__c
    Picture__c
    Broker__r.Name
    18 Henry st
    https://s3-us-west-2.amazonaws.com...
    Caroline Kingsley
    24 Pearl st
    https://s3-us-west-2.amazonaws.com...
    Michael Jones
    72 Francis st
    https://s3-us-west-2.amazonaws.com...
    Jonathan Bradley
    32 Prince st
    https://s3-us-west-2.amazonaws.com...
    Jennifer Wu
    110 Baxter st
    https://s3-us-west-2.amazonaws.com...
    Olivia Green
    448 Hannover St
    https://s3-us-west-2.amazonaws.com...
    Miriam Aupont

Viel besser. Anstelle der ID steht uns nun das Feld "Name" aus dem benutzerdefinierten Objekt "Broker" zur Verfügung.

Erstellen einer Abfrage einer Über-/Unterordnungsbeziehung

Wir haben erfolgreich jede Immobilie mit dem dazugehörigen Makler zurückgegeben. Was ist, wenn wir das Gegenteil wünschen?

Anforderung:

"Die Namen aller Makler mit Adresse und Preis aller den einzelnen Maklern zugewiesenen Immobilien abrufen."

Da wir eine Liste der Makler wünschen, fragen wir in unserer Hauptabfrage das Objekt Broker__c ab:

SELECT Name FROM Broker__c

"Broker" ist das übergeordnete Objekt, sodass die Abfrage der Über-/Unterordnungsbeziehung eine Unterabfrage des untergeordneten Objekts benötigt. Wir verwenden den Namen der untergeordneten Beziehung in der Unterabfrage.

Wie lautet der Beziehungsname für eine Unterabfrage des Objekts Property__c? Prüfen Sie die Details des Felds "Broker" im Objekt "Property".

Auf der Seite "Details" des Felds "Broker" des Objekts "Property" ist "Properties" der Name der untergeordneten Beziehung unter "Nachschlageoptionen".

Der Name der untergeordneten Beziehung ist "Properties". Da es sich um eine benutzerdefinierte Beziehung handelt, hängen wir, wenn wir sie in einer Abfrage verwenden, __r (Properties__r) an. Unsere Unterabfrage (in Klammern) lautet also:

(SELECT Address__c, Price__c FROM Properties__r)

Wenn wir die Unterabfrage in die Hauptabfrage einfügen, lautet unsere vollständige Abfrage wie folgt:

SELECT Name, (SELECT Address__c, Price__c FROM Properties__r) FROM Broker__c

Ausführen der Abfrage

  1. Geben Sie im Query Editor Folgendes ein:
    SELECT Name, (SELECT Address__c, Price__c FROM Properties__r) FROM Broker__c
  2. Klicken Sie auf Execute (Ausführen).
    Die ersten acht Zeilen der Ergebnisse sollten wie folgt lauten:

    Abfrageergebnisse: Zeilen insgesamt 8. Die erste Spalte enthält die Namen der Makler. Die zweite Spalte enthält eine durch Komma getrennte Liste von Immobilienadressen und Preisen.

Perfekt! Jetzt haben wir eine Liste aller Makler und eine durch Komma getrennte Liste der Immobilien der einzelnen Makler. Wenn Sie Abfragen entwickeln, denken Sie daran, dass der Query Editor der Developer Console eine einfache Möglichkeit zum Testen und Optimieren Ihrer SOQL-Abfragen bietet.

Ressourcen

Lernen Sie weiter kostenlos!
Registrieren Sie sich für einen Account, um fortzufahren.
Was ist für Sie drin?
  • Holen Sie sich personalisierte Empfehlungen für Ihre Karriereplanung
  • Erproben Sie Ihre Fähigkeiten mithilfe praktischer Aufgaben und Quizze
  • Verfolgen Sie Ihre Fortschritte nach und teilen Sie sie mit Arbeitgebern
  • Nutzen Sie Mentoren und Karrierechancen