Atualizar um rótulo

É possível atualizar um único rótulo aplicando um conjunto de solicitações de atualização, resultando em uma nova revisão de rascunho. Por exemplo, é possível atualizar uma propriedade de rótulo atual (a descrição) ou adicionar uma nova Field a ele.

A atualização do rótulo funciona como uma atualização em lote, já que o método recebe uma lista de objetos Request de atualização. Ela faz as atualizações de acordo com a mesma ordem especificada na solicitação em lote. As atualizações na atualização em lote são aplicadas atomicamente. Ou seja, se alguma solicitação no lote não for bem-sucedida, toda a atualização falhará e nenhuma das alterações (potencialmente dependentes) será aplicada. O rótulo não foi alterado.

Se a atualização for bem-sucedida, a revisão de rascunho resultante precisará ser publicada antes que as alterações possam ser usadas em qualquer item do Drive.

Atualizar objetos de rótulo

Um rótulo inclui muitos outros tipos de objeto que podem ser atualizados, como:

  • Propriedades do marcador
  • Campos e tipos de campo
  • Opções de seleção e Propriedades da Opção da seleção

Esses são alguns dos vários objetos que controlam a aparência e a operação de um rótulo.

Categorias de operação

As operações abaixo compatíveis com o método labels.delta podem ser agrupadas nestas categorias amplas:

Categoria Descrição
Criaçãoadicionar objetos;
AtualizarAtualizar determinadas propriedades de um objeto.
AtivarAtivar objetos.
DesativarDesative objetos.
ExcluirRemova objetos.

Essas categorias são usadas na próxima seção para descrever o comportamento de operações específicas.

Solicitações de atualização

O método labels.delta usa um ou mais objetos Request, cada um especificando um único tipo de solicitação a ser executada. Há muitos tipos diferentes de solicitações. Veja um detalhamento dos tipos de solicitações, agrupados em diferentes categorias.

Tipo de solicitação
Propriedades do rótulo
Atualizar UpdateLabelPropertiesRequest
Campo
Criação CreateFieldRequest
Atualizar UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Ativar EnableFieldRequest
Desativar DisableFieldRequest
Excluir DeleteFieldRequest
Escolha da seleção
Criação CreateSelectionChoiceRequest
Atualizar UpdateSelectionChoicePropertiesRequest
Ativar EnableSelectionChoiceRequest
Desativar DisableSelectionChoiceRequest
Excluir DeleteSelectionChoiceRequest

Máscaras de campo

Muitas das solicitações de tipo "Atualizar" e "Desativar" exigem um FieldMask. Essa é uma lista de campos delimitada por vírgulas que você quer atualizar, deixando os outros inalterados. A máscara é necessária para garantir que apenas os campos que você quer editar sejam atualizados. É necessário especificar pelo menos um campo.

Exemplo

Para atualizar um rótulo, use o método delta na coleção labels.

Também é necessário especificar:

  • useAdminAccess é true para usar as credenciais de administrador do usuário. O servidor verifica se o usuário é um administrador do rótulo antes de permitir o acesso.

  • Um Request que especifica as atualizações aplicáveis ao rótulo.

  • Um rótulo title pelo método property.

  • Um ou mais Field.

  • Um recurso Rótulo que representa cada rótulo. Ele contém um recurso Name e ID, que é um identificador globalmente exclusivo do rótulo.

  • LabelView é LABEL_VIEW_FULL para definir a visualização de recursos aplicada às respostas de marcadores. LABEL_VIEW_FULL retorna todos os campos possíveis.

Neste exemplo, o ID é usado para atualizar o rótulo correto.

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

O rótulo, o campo ou a escolha são atualizados, o ID de revisão do rótulo é incrementado e o rótulo é armazenado em um banco de dados como um rótulo de rascunho. O rótulo tem o State de PUBLISHED com hasUnpublishedChanges=true, o que significa que há mudanças no rascunho, mas elas não estão disponíveis para os usuários. O rótulo atualizado precisa ser PUBLISHED para que as mudanças fiquem visíveis para os usuários. Para mais informações, consulte Ciclo de vida do rótulo.