Aktualisieren Sie ein Label

Sie können ein einzelnes Label aktualisieren, indem Sie mehrere Aktualisierungsanfragen anwenden, die zu einer neuen Entwurfsversion führen. Sie können beispielsweise eine vorhandene Labeleigenschaft (die Labelbeschreibung) aktualisieren oder dem Label eine neue Field hinzufügen.

Das Label wird als Batch aktualisiert, da die Methode eine Liste von zu aktualisierenden Request-Objekten annimmt. Die Aktualisierungen erfolgen in der Reihenfolge, die in der Batchanfrage angegeben ist. Die Aktualisierungen im Batch-Update werden in kleinstmöglichen Schritten angewendet. Das heißt, wenn 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 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 Auswahleigenschaften

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

Betriebskategorien

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

Kategorie Beschreibung
ErstellenFügen Sie Objekte hinzu.
AktualisierenBestimmte Eigenschaften eines Objekts aktualisieren.
AktivierenAktivieren Sie Objekte.
DeaktivierenDeaktivieren Sie Objekte.
LöschenEntfernen Sie Objekte.

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

Aktualisierungs-Anfragen

Die Methode labels.delta nimmt ein oder mehrere Request-Objekte an, von denen jedes einen einzelnen auszuführenden Anfragetyp angibt. Es gibt viele verschiedene Arten von Anfragen. Im Folgenden finden Sie eine Aufschlüsselung der Anfragetypen in verschiedene Kategorien.

Feldmasken

Viele Anfragen vom Typ „Aktualisieren“ und „Deaktivieren“ erfordern eine FieldMask. Dies ist eine durch Kommas getrennte Liste der Felder, 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 Methode delta in der Sammlung labels, 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 Zugriff gewährt.

  • Ein Request, das die entsprechenden Aktualisierungen am Label angibt.

  • Ein Label title über die Methode property

  • Mindestens eine Field.

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

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

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

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()
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, Feld oder die Auswahl wird aktualisiert, die Revision-ID des Labels wird erhöht und das Label wird in einer Datenbank als Entwurfslabel gespeichert. Das Label hat die State von PUBLISHED mit hasUnpublishedChanges=true, was bedeutet, dass es Änderungen am Entwurf gibt, die aber nicht für Nutzer verfügbar sind. Das aktualisierte Label muss PUBLISHED sein, bevor die Änderungen für Nutzer sichtbar werden. Weitere Informationen finden Sie unter Labellebenszyklus.