Actualiza una etiqueta

Puedes actualizar una sola etiqueta si aplicas un conjunto de solicitudes de actualización, lo que genera una revisión de borrador nueva. Por ejemplo, puedes actualizar una propiedad de etiqueta existente (la descripción de la etiqueta) o puedes agregar una Field nueva a la etiqueta.

La actualización de etiqueta actúa como una actualización por lotes, ya que el método toma una lista de objetos Request de actualización. Realiza actualizaciones según el mismo orden especificado en la solicitud por lotes. Las actualizaciones en la actualización por lotes se aplican de forma atómica. Es decir, si alguna solicitud en el lote no se realiza correctamente, no se aplicará toda la actualización y no se aplicará ninguno de los cambios (potencialmente dependientes). La etiqueta no se modifica.

Si la actualización se realiza de forma correcta, el borrador de revisión resultante debe publicarse antes de que los cambios se puedan usar con cualquier elemento de Drive.

Actualizar objetos de etiqueta

Una etiqueta incluye muchos otros tipos de objetos que pueden actualizarse, como los siguientes:

  • Propiedades de la etiqueta
  • Campos y tipos de campos
  • Selection Choice Properties y Selection Choice Properties

Estos son algunos de los numerosos objetos que controlan la apariencia y el funcionamiento de una etiqueta.

Categorías de las operaciones

Las siguientes operaciones compatibles con el método labels.delta se pueden agrupar en las siguientes categorías amplias:

Categoría Descripción
CreaciónAgrega objetos.
ActualizaActualizar ciertas propiedades de un objeto
HabilitarHabilitar objetos.
InhabilitarInhabilitar objetos
BorrarQuitar objetos.

En la siguiente sección, se usan estas categorías para describir el comportamiento de las operaciones específicas.

Solicitudes de actualización

El método labels.delta toma uno o más objetos Request, cada uno de los cuales especifica un solo tipo de solicitud para realizar. Hay muchos tipos diferentes de solicitudes. A continuación, se muestra un desglose de los tipos de solicitudes agrupadas en diferentes categorías.

Tipo de solicitud
Propiedades de las etiquetas
Actualiza UpdateLabelPropertiesRequest
Campo
Creación CreateFieldRequest
Actualiza UpdateFieldPropertiesRequest
UpdateFieldTypeRequest.
Habilitar EnableFieldRequest
Inhabilitar DisableFieldRequest
Borrar DeleteFieldRequest
Opción de selección
Creación CreateSelectionChoiceRequest
Actualiza UpdateSelectionChoicePropertiesRequest
Habilitar EnableSelectionChoiceRequest
Inhabilitar DisableSelectionChoiceRequest
Borrar DeleteSelectionChoiceRequest

Máscaras de campo

Muchas de las solicitudes de los tipos "Inhabilitar" y "Actualizar" requieren una FieldMask. Esta es una lista delimitada por comas de los campos que quieres actualizar sin modificar los demás campos. La máscara es obligatoria para garantizar que solo se actualicen los campos que deseas editar. Debes especificar al menos un campo.

Ejemplo

Para actualizar una etiqueta, usa el método delta en la colección labels.

También debes especificar lo siguiente:

  • useAdminAccess es true para usar las credenciales de administrador del usuario. El servidor verifica que el usuario sea un administrador de la etiqueta antes de permitir el acceso.

  • Una Request que especifica las actualizaciones aplicables a la etiqueta.

  • Una etiqueta title a través del método property

  • Uno o más elementos Field.

  • Un recurso de etiqueta que representa cada etiqueta. Contiene un recurso Name y ID, que es un identificador único a nivel global para la etiqueta.

  • LabelView es LABEL_VIEW_FULL para establecer la vista de recursos que se aplica a las respuestas de etiquetas. LABEL_VIEW_FULL muestra todos los campos posibles.

En este ejemplo, se usa ID para actualizar la etiqueta correcta.

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

Se actualiza la etiqueta, el campo o la opción, se incrementa el ID de revisión de la etiqueta y la etiqueta se almacena en una base de datos como una etiqueta de borrador. La etiqueta tiene el State de PUBLISHED, con hasUnpublishedChanges=true, lo que significa que hay cambios en borrador, pero no están disponibles para los usuarios. La etiqueta actualizada debe ser PUBLISHED antes de que los usuarios puedan ver los cambios. Para obtener más información, consulta Ciclo de vida de las etiquetas.