Aktualisieren Sie ein Label

Sie können ein einzelnes Label aktualisieren, indem Sie eine Reihe von Aktualisierungsanfragen anwenden, die zu einer neuen Entwurfsversion führen. Sie können beispielsweise eine vorhandene Label Eigenschaft (die Label Beschreibung) aktualisieren oder dem Label ein neues Field hinzufügen.

Die Labelaktualisierung fungiert als Batchaktualisierung, da die Methode eine Liste von update Request-Objekten akzeptiert. Die Aktualisierungen werden in derselben Reihenfolge vorgenommen, die in der Batchanfrage angegeben ist. Die Aktualisierungen im Batch-Update werden atomar angewendet. Wenn also eine Anfrage im Batch fehlschlägt, schlägt die gesamte Aktualisierung fehl und keine der (potenziell abhängigen) Änderungen wird angewendet. Das Label bleibt unverändert.

Wenn die Aktualisierung erfolgreich ist, muss die resultierende Entwurfsversion veröffentlicht werden, bevor die Änderungen mit einem Drive-Element verwendet werden können.

Labelobjekte aktualisieren

Ein Label enthält viele andere Objekttypen, die aktualisiert werden können, z. B.:

  • Labeleigenschaften
  • Felder und Feldtypen
  • Auswahlmöglichkeiten und Eigenschaften von Auswahlmöglichkeiten

Dies sind einige der vielen Objekte, die das Erscheinungsbild und die Funktionsweise eines Labels steuern.

Vorgangskategorien

Die folgenden Vorgänge, die von der labels.delta Methode unterstützt werden, können in die folgenden allgemeinen Kategorien gruppiert werden:

Kategorie Beschreibung
ErstellenObjekte hinzufügen.
AktualisierenBestimmte Eigenschaften eines Objekts aktualisieren.
AktivierenObjekte aktivieren.
DeaktivierenObjekte deaktivieren.
LöschenObjekte entfernen.

Diese Kategorien werden im nächsten Abschnitt verwendet, um das Verhalten bestimmter Vorgänge zu beschreiben.

Aktualisierungs-Anfragen

Die labels.delta Methode funktioniert durch die Verwendung eines oder mehrerer Request Objekte, die jeweils einen einzelnen Anfragetyp angeben. Es gibt viele verschiedene Arten von Anfragen. Hier finden Sie eine Aufschlüsselung der Anfragetypen, gruppiert in verschiedene Kategorien.

Art der Anfrage
Labeleigenschaften
Aktualisieren UpdateLabelPropertiesRequest
Feld
Erstellen CreateFieldRequest
Aktualisieren UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Aktivieren EnableFieldRequest
Deaktivieren DisableFieldRequest
Löschen DeleteFieldRequest
Auswahlmöglichkeit
Erstellen CreateSelectionChoiceRequest
Aktualisieren UpdateSelectionChoicePropertiesRequest
Aktivieren EnableSelectionChoiceRequest
Deaktivieren DisableSelectionChoiceRequest
Löschen DeleteSelectionChoiceRequest

Feldmasken

Für viele Anfragen vom Typ "Aktualisieren" und "Deaktivieren" ist eine FieldMask erforderlich. Dies ist eine durch Kommas getrennte Liste von Feldern, die Sie aktualisieren möchten, während die anderen Felder unverändert bleiben. Die Maske ist erforderlich, damit nur die Felder aktualisiert werden, die Sie bearbeiten möchten. Sie müssen mindestens ein Feld angeben.

Beispiel

Verwenden Sie die delta Methode für die labels Sammlung, um ein Label zu aktualisieren.

Außerdem müssen Sie Folgendes angeben:

  • useAdminAccess ist true, um die Administratoranmeldedaten des Nutzers zu verwenden. Der Server prüft, ob der Nutzer ein Administrator für das Label ist, bevor er den Zugriff zulässt.

  • Eine Request, die die entsprechenden Aktualisierungen für das Label angibt.

  • Einen Label-title über die property Methode.

  • Ein oder mehrere Field.

  • Eine Label-Ressource die jedes Label darstellt. Sie enthält einen Ressourcen-Name und eine ID, die eine global eindeutige Kennzeichnung für das Label ist.

  • LabelView ist LABEL_VIEW_FULL, um die Ressourcenansicht festzulegen, die auf Labelantworten angewendet wird. LABEL_VIEW_FULL gibt alle möglichen Felder zurück.

In diesem Beispiel wird die ID verwendet, um das richtige Label zu aktualisieren.

Python

body = {
'use_admin_access': True,
'requests': [{
  'update_label': {
    'properties': {
      'title': 'TITLE'
    },
    'update_mask': {
      'paths': ['title']
    }
  },
}, {
  'create_field': {
    'field': {
      'properties': {
        'display_name': 'DISPLAY_NAME'
      },
      'text_options': {}
    }
  }
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
  body=body,
  name='labels/ID').execute()

Node.js

var body = {
  'use_admin_access': true,
  'requests': [{
    'update_label': {
      'properties': {
        'title': 'TITLE'
      },
      'update_mask': {
        'paths': ['title']
      }
    },
  }, {
    'create_field': {
      'field': {
        'properties': {
          'display_name': 'DISPLAY_NAME'
        },
        'text_options': {}
      }
    }
  }],
  'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
  'resource': body,
  'name': 'labels/ID'
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Das Label, das Feld oder die Auswahl wird aktualisiert, die Revisions-ID des Labels wird erhöht und das Label wird als Entwurf in einer Datenbank gespeichert. Das Label hat den State von PUBLISHED mit hasUnpublishedChanges=true. Das bedeutet, dass es Entwurfsänderungen gibt, die aber für Nutzer nicht verfügbar sind. Das aktualisierte Label muss PUBLISHED sein, bevor die Änderungen für Nutzer sichtbar werden. Weitere Informationen finden Sie unter Label Lebenszyklus.