Mettre à jour un libellé

Vous pouvez mettre à jour un seul libellé en appliquant un ensemble de requêtes de mise à jour, ce qui génère un nouveau brouillon de révision. Par exemple, vous pouvez mettre à jour une propriété de libellé existante (la description du libellé) ou ajouter une nouvelle Field au libellé.

La mise à jour des étiquettes agit comme une mise à jour par lot, car la méthode prend une liste d'objets de mise à jour Request. Les mises à jour sont effectuées dans le même ordre que celui spécifié dans la requête par lot. Les mises à jour par lot sont appliquées de manière atomique. Autrement dit, si l'une des requêtes du lot échoue, la mise à jour complète échoue et aucune des modifications (potentiellement dépendantes) n'est appliquée. Le libellé n'est pas modifié.

Si la mise à jour aboutit, la révision du brouillon obtenue doit être publiée pour que les modifications puissent être utilisées avec un élément Drive.

Mettre à jour des objets de libellé

Une étiquette inclut de nombreux autres types d'objets pouvant être mis à jour, tels que:

  • Propriétés du libellé
  • Champs et types de champs
  • Options de sélection et propriétés de choix de sélection

Voici quelques-uns des nombreux objets qui contrôlent l'apparence et le fonctionnement d'un libellé.

Catégories d'opérations

Les opérations suivantes, compatibles avec la méthode labels.delta, peuvent être regroupées dans les grandes catégories suivantes:

Catégorie Description
CréerAjouter des objets
Mettre à jourMet à jour certaines propriétés d'un objet.
ActiverActiver les objets.
DésactiverDésactiver des objets
Supprimersupprimer des objets ;

Ces catégories seront utilisées dans la section suivante pour décrire le comportement d'opérations spécifiques.

Demandes de mises à jour

La méthode labels.delta fonctionne en prenant un ou plusieurs objets Request, chacun spécifiant un seul type de requête à effectuer. Il existe de nombreux types de demandes différents. Voici une répartition des types de requêtes, regroupés en différentes catégories.

Type de requête
Propriétés des libellés
Mettre à jour UpdateLabelPropertiesRequest
Champ
Créer CreateFieldRequest
Mettre à jour UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Activer EnableFieldRequest
Désactiver DisableFieldRequest
Supprimer DeleteFieldRequest
Choix de sélection
Créer CreateSelectionChoiceRequest
Mettre à jour UpdateSelectionChoicePropertiesRequest
Activer EnableSelectionChoiceRequest
Désactiver DisableSelectionChoiceRequest
Supprimer DeleteSelectionChoiceRequest

Masques de champ

De nombreuses requêtes de type "Mettre à jour" et "Désactiver" nécessitent un FieldMask. Il s'agit d'une liste de champs séparés par une virgule que vous souhaitez mettre à jour sans modifier les autres champs. Le masque est nécessaire pour que seuls les champs que vous souhaitez modifier soient à jour. Vous devez spécifier au moins un champ.

Exemple

Pour mettre à jour un libellé, utilisez la méthode delta sur la collection labels.

Vous devez également spécifier les informations suivantes:

  • useAdminAccess est true pour utiliser les identifiants d'administrateur de l'utilisateur. Le serveur vérifie que l'utilisateur est un administrateur du libellé avant d'autoriser l'accès.

  • Un élément Request qui spécifie les mises à jour applicables au libellé.

  • Un libellé title via la méthode property.

  • un ou plusieurs Field ;

  • Une ressource d'étiquette qui représente chaque étiquette. Il contient une ressource Name et ID, qui est l'identifiant unique du libellé.

  • LabelView est LABEL_VIEW_FULL pour définir la vue des ressources appliquée aux réponses aux libellés. LABEL_VIEW_FULL renvoie tous les champs possibles.

Cet exemple utilise ID pour mettre à jour le libellé approprié.

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);
});

Le libellé, le champ ou le choix sont mis à jour, l'ID de révision du libellé est incrémenté et le libellé est stocké dans une base de données sous forme de brouillon. Le libellé a le State de PUBLISHED avec hasUnpublishedChanges=true, ce qui signifie qu'il existe des brouillons de modifications, mais qu'ils ne sont pas disponibles pour les utilisateurs. Le libellé mis à jour doit être PUBLISHED pour que les utilisateurs puissent voir les modifications. Pour en savoir plus, consultez la section Cycle de vie des étiquettes.