Aktualisieren Sie ein Label

Mit der Google Drive Labels API können Sie ein einzelnes Label aktualisieren, indem Sie eine Reihe von Aktualisierungsanfragen anwenden, die zu einer neuen Entwurfsversion führen. Sie können beispielsweise ein vorhandenes Label Properties (die grundlegende Labelbeschreibung) aktualisieren oder dem Label ein neues Field hinzufügen.

Die Labelaktualisierung fungiert als Batchaktualisierung, da die Methode eine Liste von Aktualisierungs Request Objekten verwendet. Die Aktualisierungen werden in derselben Reihenfolge vorgenommen, die in der Batchanfrage angegeben ist. Die Aktualisierungen im Batch-Update werden atomar angewendet. 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 ist, muss die resultierende Entwurfsversion veröffentlicht werden, bevor die Änderungen mit einem Google Drive-Element verwendet werden können.

Labelobjekte aktualisieren

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

  • Label Properties
  • Field-Objekte und Feldtypen
  • Auswahl Choice und Auswahl Properties

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

Vorgangskategorien

Die folgenden Vorgänge, die von der delta Methode für die labels Ressource unterstützt werden, können in die folgenden allgemeinen Kategorien gruppiert 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 delta verwendet ein oder mehrere Anfrage 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.

Anfrageobjekt
Labelattribute
Aktualisieren UpdateLabelPropertiesRequest
Feld
Erstellen CreateFieldRequest
Aktualisieren UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Aktivieren EnableFieldRequest
Deaktivieren DisableFieldRequest
Löschen DeleteFieldRequest
Auswahl
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 Ressource, um ein Label zu aktualisieren.

Außerdem müssen Sie Folgendes angeben:

  • Der useAdminAccess Abfrageparameter ist auf true gesetzt, um die Administrator anmeldedaten des Nutzers zu verwenden. Bevor der Zugriff gewährt wird, prüft der Server, ob der Nutzer die erforderlichen Administratorberechtigungen zum Verwalten von Klassifikations labels hat.

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

  • Ein Label title über das Properties Objekt.

  • Ein oder mehrere Field Objekte.

  • Eine labels Ressource, die das Label darstellt. Sie enthält einen name und eine id, die eine weltweit eindeutige Kennung für das Label ist.

  • Ein LabelView Objekt als LABEL_VIEW_FULL, um eine Ressourcenansicht festzulegen, die auf Label Antworten angewendet wird. LABEL_VIEW_FULL gibt alle möglichen Felder zurück.

Das folgende Codebeispiel zeigt, wie Sie die id des Labels verwenden, um das richtige Label zu aktualisieren:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Ersetzen Sie Folgendes:

  • TITLE: Der Titel des Labels.
  • DISPLAY_NAME: Der Anzeigename des Felds.
  • ID: Die ID des Labels.

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 und hasUnpublishedChanges ist auf true gesetzt. 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.