Vorgeschlagene Werte in der API verwalten

Für jedes Zeichenfolgenfeld im Experience-Datenmodell (XDM) können Sie eine Aufzählung definieren, die die Werte, die das Feld aufnehmen kann, auf einen vordefinierten Satz einschränkt. Wenn Sie versuchen, Daten in ein Aufzählungsfeld aufzunehmen, und der Wert mit keinem der in der Konfiguration definierten übereinstimmt, wird die Aufnahme verweigert.

Im Gegensatz zu Auflistungen schränkt das Hinzufügen empfohlenen Werte zu einem Zeichenfolgenfeld nicht die Werte ein, die es aufnehmen kann. Stattdessen beeinflussen vorgeschlagene Werte, welche vordefinierten Werte in der Segmentierungsbenutzeroberfläche) verfügbar sind wenn das Zeichenfolgenfeld als Attribut einbezogen wird.

NOTE
Die aktualisierten empfohlenen Werte eines Felds, die in der Segmentierungs-Benutzeroberfläche angezeigt werden sollen, vergehen ungefähr fünf Minuten.

In diesem Handbuch wird beschrieben, wie Sie vorgeschlagene Werte mithilfe der Schema Registry-API verwalten. Anweisungen dazu, wie Sie dies in der Adobe Experience Platform-Benutzeroberfläche tun, finden Sie im UI-Handbuch zu Auflistungen und empfohlenen Werten.

Voraussetzungen

In diesem Handbuch wird davon ausgegangen, dass Sie mit den Elementen der Schemakomposition in XDM und der Verwendung der Schema Registry-API zum Erstellen und Bearbeiten von XDM-Ressourcen vertraut sind. Bitte lesen Sie die folgende Dokumentation, wenn Sie eine Einführung benötigen:

Es wird außerdem dringend empfohlen, die Entwicklungsregeln für Aufzählungen und empfohlene Werte“ zu überprüfen wenn Sie vorhandene Felder aktualisieren. Wenn Sie vorgeschlagene Werte für Schemata verwalten, die Teil einer Vereinigung sind, finden Sie weitere Informationen unter Regeln für das Zusammenführen von Auflistungen und vorgeschlagenen Werten.

Komposition

In der API werden die eingeschränkten Werte für ein enum-Feld durch ein enum-Array dargestellt, während ein meta:enum-Objekt Anzeigenamen für diese Werte bereitstellt:

"exampleStringField": {
  "type": "string",
  "enum": [
    "value1",
    "value2",
    "value3"
  ],
  "meta:enum": {
    "value1": "Value 1",
    "value2": "Value 2",
    "value3": "Value 3"
  },
  "default": "value1"
}

Bei Aufzählungsfeldern ermöglicht die Schemaregistrierung keine Erweiterung von meta:enum über die unter enum angegebenen Werte hinaus, da der Versuch, Zeichenfolgenwerte außerhalb dieser Einschränkungen aufzunehmen, die Validierung nicht bestehen würde.

Alternativ können Sie ein Zeichenfolgenfeld definieren, das kein enum-Array enthält und das meta:enum-Objekt nur zur Kennzeichnung von (vorgeschlagenen Werten:

"exampleStringField": {
  "type": "string",
  "meta:enum": {
    "value1": "Value 1",
    "value2": "Value 2",
    "value3": "Value 3"
  },
  "default": "value1"
}

Da die Zeichenfolge über kein enum-Array zum Definieren von Einschränkungen verfügt, kann ihre meta:enum-Eigenschaft erweitert werden, um neue Werte einzuschließen.

Hinzufügen empfohlener Werte zu einem Standardfeld add-suggested-standard

Um die meta:enum eines standardmäßigen Zeichenfolgenfelds zu erweitern, können Sie für das Feld in einem bestimmten Schema einenDeskriptor für benutzerfreundliche Namen“ erstellen.

NOTE
Die vorgeschlagenen Werte für Zeichenfolgenfelder können nur auf Schemaebene hinzugefügt werden. Mit anderen Worten: Die Erweiterung der meta:enum eines Standardfelds in einem Schema wirkt sich nicht auf andere Schemata aus, die dasselbe Standardfeld verwenden.

Die folgende Anfrage fügt dem eventType-Standardfeld (bereitgestellt von der XDM ExperienceEvent-Klasse) vorgeschlagene Werte für das unter sourceSchema identifizierte Schema hinzu:

curl -X POST \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
        "@type": "xdm:alternateDisplayInfo",
        "sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
        "sourceProperty": "/eventType",
        "title": {
            "en_us": "Enum Event Type"
        },
        "description": {
            "en_us": "Event type field with soft enum values"
        },
        "meta:enum": {
          "eventA": {
            "en_us": "Event Type A"
          },
          "eventB": {
            "en_us": "Event Type B"
          }
        }
      }'

Nach Anwendung des Deskriptors antwortet die Schemaregistrierung beim Abrufen des Schemas mit dem folgenden Code (Antwort aus Platzgründen abgeschnitten):

{
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "title": "Example Schema",
  "properties": {
    "eventType": {
      "type":"string",
      "title": "Enum Event Type",
      "description": "Event type field with soft enum values.",
      "meta:enum": {
        "customEventA": "Custom Event Type A",
        "customEventB": "Custom Event Type B"
      }
    }
  }
}
NOTE
Wenn das Standardfeld bereits Werte unter meta:enum enthält, überschreiben die neuen Werte aus dem Deskriptor nicht die vorhandenen Felder und werden stattdessen zu hinzugefügt:
code language-json
"standardField": {
   "type":"string",
   "title": "Example standard enum field",
   "description": "Standard field with existing enum values.",
   "meta:enum": {
       "standardEventA": "Standard Event Type A",
       "standardEventB": "Standard Event Type B",
       "customEventA": "Custom Event Type A",
       "customEventB": "Custom Event Type B"
   }
}

Vorgeschlagene Werte für ein benutzerdefiniertes Feld verwalten suggested-custom

Um die meta:enum eines benutzerdefinierten Felds zu verwalten, können Sie die übergeordnete Klasse, Feldergruppe oder den Datentyp des Felds über eine PATCH-Anfrage aktualisieren.

WARNING
Im Gegensatz zu Standardfeldern wirkt sich die Aktualisierung der meta:enum eines benutzerdefinierten Felds auf alle anderen Schemata aus, die dieses Feld verwenden. Wenn Sie nicht möchten, dass Änderungen sich über Schemata hinweg ausbreiten, sollten Sie stattdessen eine neue benutzerdefinierte Ressource erstellen:

Die folgende Anfrage aktualisiert die meta:enum eines Felds der Treuestufe, das von einem benutzerdefinierten Datentyp bereitgestellt wird:

curl -X PATCH \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/datatypes/_{TENANT_ID}.datatypes.8779fd45d6e4eb074300023a439862bbba359b60d451627a \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '[
        {
          "op": "replace",
          "path": "/loyaltyLevel/meta:enum",
          "value": {
            "ultra-platinum": "Ultra Platinum",
            "platinum": "Platinum",
            "gold": "Gold",
            "silver": "Silver",
            "bronze": "Bronze"
          }
        }
      ]'

Nach Anwendung der Änderung antwortet die Schemaregistrierung beim Abrufen des Schemas wie folgt (Antwort aus Platzgründen gekürzt):

{
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "title": "Example Schema",
  "properties": {
    "loyaltyLevel": {
      "type":"string",
      "title": "Loyalty Level",
      "description": "The loyalty program tier that this customer qualifies for.",
      "meta:enum": {
        "ultra-platinum": "Ultra Platinum",
        "platinum": "Platinum",
        "gold": "Gold",
        "silver": "Silver",
        "bronze": "Bronze"
      }
    }
  }
}

Nächste Schritte

In diesem Handbuch wurde beschrieben, wie Sie vorgeschlagene Werte für Zeichenfolgenfelder in der Schema Registry-API verwalten. Weitere Informationen zum Erstellen verschiedenen Feldtypen finden SieHandbuch unter „Definieren benutzerdefinierter Felder in der API“.

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07