Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Erstellen einer Benutzeroberfläche zum Erstellen oder Duplizieren eines Datensatzes

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Absetzen einer Anforderung an die User Interface API, um die Standardwerte abzurufen, damit Sie einen Datensatz duplizieren können
  • Absetzen einer Anforderung an die User Interface API, um die Standardwerte abzurufen, damit Sie einen Datensatz erstellen können
  • Absetzen einer Anforderung an die User Interface API, um einen Datensatz zu duplizieren oder zu erstellen

Abrufen von Standardwerten zum Duplizieren eines Datensatzes

Um eine Benutzeroberfläche zu erstellen, mit der Benutzer einen Datensatz duplizieren können, erstellen Sie ein bearbeitbares Formular, in das bereits Werte aus dem duplizierten Datensatz eingetragen sind. Als Beispiel duplizieren wir nun einen Datensatz in Lightning Experience.
  1. Öffnen Sie in Ihrem Trailhead Playground die Anwendung "Vertrieb".
  2. Klicken Sie Opportunities.
  3. Wählen Sie die Listenansicht Alle Opportunities aus.
  4. Klicken Sie, um eine Opportunity zu öffnen.
  5. Klicken Sie auf Duplizieren.
Startseite eines Opportunity-Datensatzes in Lightning Experience

Das Formular in Lightning Experience enthält bereits ausgefüllte Werte aus dem duplizierten Datensatz, wie den Opportunity-Namen, den Accountnamen und den Betrag. Formular zum Duplizieren einer Opportunity in Lightning Experience

Klicken Sie auf Abbrechen oder Speichern. Wir verwenden die duplizierte Opportunity nicht, da wir uns nur die Benutzeroberfläche ansehen wollten.

Zum Abrufen der Informationen für die Erstellung dieses Formulars verwenden Sie die UI API-Ressource zum Duplizieren von Datensatz-Standardwerten.
GET /ui-api/record-defaults/clone/{recordId}
Die Saga cloneDefaultsFetcher.js ruft die Standardwerte zum Erstellen eines Datensatzes ab.
let defaultsUrl = action.creds.instanceUrl + '/services/data/v48.0/ui-api/record-defaults/clone/' 
                  + action.id + '?formFactor=' + action.context.formFactor;

Wenn der UI API-Vorgang erfolgreich ist, sendet die Saga die Aktion receiveCloneDefaults(responseJson), die die JSON-Antwort enthält. Der Reducer record.js fängt die Aktion ab und verwendet sie als Eingabe, um den Redux-Zustand zu aktualisieren.

Lassen Sie uns nun zur Record Viewer-Anwendung wechseln und denselben Datensatz duplizieren, damit wir uns die JSON-Antwort auf den Aufruf von GET /ui-api/record-defaults/clone/{recordId} ansehen können.

  1. Laden Sie die Record Viewer-Anwendung neu und klicken Sie auf die Opportunity in der Liste Zuletzt verwendete Elemente.
  2. Wenn der Datensatz geladen wurde, klicken Sie auf Clone.
  3. Um die JSON-Antwort aus der User Interface API anzuzeigen, klicken Sie auf Show JSON.
  4. Wenn Sie ein JSON-Objekt (wie layout, objectInfos und record) einblenden möchten, klicken Sie darauf.
JSON-Antwort beim Duplizieren von Datensatz-Standardwerten
Sehen wir uns die Antwort kurz an. Sie ähnelt einer Antwort aus der Ressource /ui-api/record-ui/{recordId}, doch die Nutzlast ist kleiner.
  • Sie enthält layout-Metadaten für das Objekt im Edit-Modus.
  • Sie enthält objectInfos (Objektmetadaten) für das duplizierte Objekte und alle verschachtelten Objekte. Wenn Sie beispielsweise eine Opportunity duplizieren, enthält die Antwort Objektmetadaten für das Opportunity-Objekt. Außerdem enthält sie Objektmetadaten für das Account-Objekt, da die Opportunity einen Account referenziert. Zudem enthält sie Objektmetadaten für das Benutzer-Objekt, da Felder wie OwnerId einen Benutzer referenzieren.
  • Sie enthält die record-Standarddaten aus dem Datensatz, den Sie duplizieren, damit Sie diese zum Erstellen eines Datensatzes verwenden können.

Die Funktion "/helpers/recordLayout.js" analysiert die JSON-Antwort, um das interne Datenmodell für Layouts zu erstellen. Um festzustellen, welche Felder bearbeitet werden können, sucht getLayoutItemModel nach Layoutelementen, bei denen "editableForNew" : true gilt. Um festzustellen, welche Felder in der Benutzeroberfläche optisch gekennzeichnet werden müssen, um anzugeben, dass sie Pflichtfelder sind, sucht getLayoutItemModel nach Layoutelementen, bei denen "required" : true gilt. Damit diese Eigenschaften angezeigt werden, erweitern Sie den Abschnitt layout der JSON-Layoutantwort in der Record Viewer-Anwendung.

"layout" : {
    "eTag" : "5d3f8f0a8163c3d98f16a77482cf9caa",
    "id" : "00hd000000N0BoZAAV",
    "layoutType" : "Full",
    "mode" : "Edit",
    "sections" : [ {
      "collapsible" : false,
      "columns" : 2,
      "heading" : "Opportunity Information",
      "id" : "01Bd000000SObNYEA1",
      "layoutRows" : [ {
       "layoutItems" : [ {
          "editableForNew" : true,
          "editableForUpdate" : true,
          "label" : "Opportunity Name",
          "layoutComponents" : [ {
            "apiName" : "Name",
            "componentType" : "Field",
            "label" : "Name"
          } ],
          "lookupIdApiName" : "Id",
          "required" : true,
          "sortable" : false
        },
...

Abrufen von Standardwerten zum Erstellen eines Datensatzes

Zum Erstellen einer Benutzeroberfläche, mit der Benutzer einen Datensatz erstellen können, benötigen Sie ein bearbeitbares Formular mit leeren Feldern, die der Benutzer ausfüllen kann. Zum Abrufen der Informationen für die Erstellung dieses Formulars verwenden Sie die Ressource zum Erstellen von Datensatz-Standardwerten.

GET /ui-api/record-defaults/create/{objectApiName}
Die Saga createDefaultsFetcher.js ruft die Standardwerte zum Erstellen eines Datensatzes ab.
let defaultsUrl = action.creds.instanceUrl + '/services/data/v48.0/ui-api/record-defaults/create/' 
                + action.apiName + '?formFactor=Large';

Wenn der UI API-Vorgang erfolgreich ist, sendet die Saga die Aktion receiveCreateDefaults(responseJson), die die JSON-Antwort enthält. Der Reducer record.js fängt die Aktion ab und verwendet sie als Eingabe, um den Redux-Zustand zu aktualisieren.

Lassen Sie uns nun zur Record Viewer-Anwendung wechseln und einen Datensatz erstellen, damit wir uns die JSON-Antwort auf den Aufruf von GET /ui-api/record-defaults/create/{objectApiName} ansehen können.
  1. Wählen Sie aus dem Menü Create New Record die Menüoption "Account" aus.Ein Formular mit leeren, bearbeitbaren Feldern zum Erstellen eines Accounts
  2. Um die JSON-Antwort aus der User Interface API anzuzeigen, klicken Sie auf Show JSON.
JSON-Antwort beim Erstellen von Datensatz-Standardwerten
Die Antwort enthält die notwendigen Informationen für die Anwendung, um eine Benutzeroberfläche zu erstellen, mit der Benutzer einen Datensatz erstellen können.
  • Sie enthält layout-Metadaten für das Objekt im Create-Modus.
  • Sie enthält objectInfos (Objektmetadaten) für das angegebene Objekte und alle verschachtelten Objekte.
  • Sie enthält null Werte für die record-Felder außer Owner und OwnerId, in die Werte für den Benutzer eingetragen sind, der die Anforderung abgesetzt hat.

Genau wie beim Duplizieren eines Datensatzes analysiert die Funktion "/helpers/recordLayout.js" die JSON-Antwort, um das interne Datenmodell für Layouts zu erstellen. Um festzustellen, welche Felder bearbeitet werden können, sucht getLayoutItemModel nach Layoutelementen, bei denen "editableForNew" : true gilt. Um festzustellen, welche Felder in der Benutzeroberfläche optisch gekennzeichnet werden müssen, um anzugeben, dass sie Pflichtfelder sind, sucht getLayoutItemModel nach Layoutelementen, bei denen "required" : true gilt. Damit diese Eigenschaften angezeigt werden, erweitern Sie das Objekt layout der JSON-Antwort in der Record Viewer-Anwendung.

Erstellen oder Duplizieren eines Datensatzes

Wenn ein Benutzer auf Save klickt, setzt die Record Viewer-Anwendung eine POST-Anforderung an /ui-api/records ab, um den Datensatz in der Datenbank festzuschreiben.
POST /ui-api/records

{
  "apiName": "Account",
  "fields": {
    "Name": "New Universal Containers"
  }
}

Von Ihnen gesendete Feldwerte werden mit den Feldwerten zusammengeführt, die die Ressource für Datensatz-Standardwerte zurückgibt. Das Feld OwnerId ist beispielsweise erforderlich und kann erstellt werden, Sie müssen jedoch keinen Wert angeben, da dieser in der Antwort mit Datensatz-Standardwerten enthalten ist.

Da Workbench ja schon geöffnet ist, erstellen Sie jetzt am besten gleich einen Account namens New Universal Containers. Laden Sie die Record Viewer-Anwendung neu und klicken Sie in der Liste "Zuletzt verwendete Elemente" auf "New Universal Containers". Nicht vergessen: Sie können den Account auch in Ihrem Trailhead Playground anzeigen!