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 |
|---|---|
| Erstellen | Objekte hinzufügen. |
| Aktualisieren | Bestimmte Eigenschaften eines Objekts aktualisieren. |
| Aktivieren | Objekte aktivieren. |
| Deaktivieren | Objekte deaktivieren. |
| Löschen | Objekte 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 |
|
||||||||||
| Feld |
|
||||||||||
| Auswahlmöglichkeit |
|
||||||||||
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:
useAdminAccessisttrue, 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 diepropertyMethode.Ein oder mehrere
Field.Eine Label-Ressource die jedes Label darstellt. Sie enthält einen Ressourcen-
Nameund eineID, die eine global eindeutige Kennzeichnung für das Label ist.LabelViewistLABEL_VIEW_FULL, um die Ressourcenansicht festzulegen, die auf Labelantworten angewendet wird.LABEL_VIEW_FULLgibt 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.