Aktualisieren Sie ein Label

Sie können ein einzelnes Label aktualisieren, indem Sie eine Reihe von Aktualisierungsanfragen anwenden, die zu einem neuen Entwurf der Überarbeitung führen. Sie können beispielsweise das Attribut eines vorhandenen Labels (die Labelbeschreibung) aktualisieren oder dem Label eine neue Field hinzufügen.

Die Labelaktualisierung fungiert als Batchaktualisierung, da die Methode eine Liste von Request-Aktualisierungsobjekten verwendet. Die Aktualisierungen werden in der Reihenfolge vorgenommen, die in der Batchanfrage festgelegt ist. Die Aktualisierungen im Batch-Update werden in kleinstmöglichen Schritten 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 das Update erfolgreich war, muss die resultierende Entwurfsversion veröffentlicht werden, bevor die Änderungen für ein 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 für Auswahlmöglichkeiten

Dies sind einige der vielen Objekte, die die Darstellung und den Betrieb eines Labels steuern.

Vorgangskategorien

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

Kategorie Beschreibung
ErstellenObjekte hinzufügen
AktualisierenBestimmte Attribute 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 Methode labels.delta verwendet ein oder mehrere Request-Objekte, von denen jedes einen bestimmten Typ von auszuführenden Anfragen angibt. Es gibt viele verschiedene Arten von Anträgen. Im Folgenden finden Sie eine Aufschlüsselung der Anfragetypen 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

Viele Anfragen vom Typ „Update“ und „Disable“ erfordern ein FieldMask. 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 zum Aktualisieren eines Labels die Methode delta in der Sammlung labels.

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 gewährt.

  • Ein Request, das die anwendbaren Aktualisierungen des Labels angibt.

  • Ein Label title über die Methode property.

  • Eines oder mehrere Field.

  • Eine Labelressource, die jedes Label darstellt. Es enthält die Ressourcen Name und ID, die eine global eindeutige Kennzeichnung für das Label darstellen.

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

In diesem Beispiel wird 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 Überarbeitungs-ID des Labels erhöht und das Label wird in einer Datenbank als Labelentwurf gespeichert. Das Label hat den State PUBLISHED mit hasUnpublishedChanges=true. Das bedeutet, dass Entwurfsänderungen vorhanden sind, die für Nutzer aber nicht verfügbar sind. Das aktualisierte Label muss PUBLISHED lauten, bevor die Änderungen für Nutzer sichtbar werden. Weitere Informationen finden Sie unter Label-Lebenszyklus.