Aktualizowanie etykiety

Możesz zaktualizować pojedynczą etykietę, stosując zestaw żądań aktualizacji, co spowoduje utworzenie nowej wersji roboczej. Możesz na przykład zaktualizować istniejącą właściwość etykiety (opis etykiety) lub dodać do etykiety nową Field.

Aktualizacja etykiety jest aktualizacją zbiorczą, ponieważ metoda pobiera listę obiektów aktualizacji Request. Aktualizuje je w kolejności określonej w żądaniu zbiorczym. Aktualizacje w ramach aktualizacji zbiorczej są stosowane atomowo. Oznacza to, że jeśli którekolwiek żądanie w grupie nie powiedzie się, cała aktualizacja zakończy się niepowodzeniem i nie zostaną zastosowane żadne (potencjalnie zależne) zmiany. Etykieta pozostaje niezmieniona.

Jeśli aktualizacja się powiedzie, wynikowa wersja robocza musi zostać opublikowana, zanim będzie można użyć zmian w dowolnym elemencie na Dysku.

Aktualizowanie obiektów etykiet

Etykieta zawiera wiele innych typów obiektów, które można aktualizować, na przykład:

  • Właściwości etykiety
  • Pola i typy pól
  • Opcje wyboru i właściwości wyboru

Oto niektóre z wielu obiektów, które kontrolują wygląd i działanie etykiety.

Kategorie działań

Operacje obsługiwane przez metodę labels.delta można podzielić na te ogólne kategorie:

Kategoria Opis
UtwórzDodaj obiekty.
ZaktualizujAktualizacja określonych właściwości obiektu.
WłączWłącz obiekty.
WyłączWyłącz obiekty.
UsuńUsuń obiekty.

W następnej sekcji zostaną one użyte do opisania sposobu działania określonych operacji.

Prośby o aktualizację

Metoda labels.delta działa, przyjmując 1 lub więcej obiektów Request, z których każdy określa jeden typ żądania do wykonania. Jest wiele różnych rodzajów wniosków. Oto zestawienie typów żądań podzielonych na różne kategorie.

Typ wniosku
Właściwości etykiety
Zaktualizuj UpdateLabelPropertiesRequest
Pole
Utwórz CreateFieldRequest
Zaktualizuj UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Włącz EnableFieldRequest
Wyłącz DisableFieldRequest
Usuń DeleteFieldRequest
Wybór
Utwórz CreateSelectionChoiceRequest
Zaktualizuj UpdateSelectionChoicePropertiesRequest
Włącz EnableSelectionChoiceRequest
Wyłącz DisableSelectionChoiceRequest
Usuń DeleteSelectionChoiceRequest

Maski pól

Wiele żądań typu „Aktualizacja” lub „Wyłącz” wymaga FieldMask. Jest to rozdzielana przecinkami lista pól, które chcesz zaktualizować, bez zmian w pozostałych polach. Maska jest wymagana, aby można było zaktualizować tylko pola, które chcesz edytować. Musisz określić co najmniej jedno pole.

Przykład

Aby zaktualizować etykietę, użyj w kolekcji labels metody delta.

Musisz też podać:

  • useAdminAccess: true, aby można było użyć danych logowania administratora. Przed zezwoleniem na dostęp serwer sprawdza, czy użytkownik jest administratorem etykiety.

  • Request określa odpowiednie aktualizacje etykiety.

  • Etykieta title za pomocą metody property.

  • Co najmniej 1 element Field.

  • Zasób etykiety reprezentujący każdą etykietę. Zawiera zasoby Name i ID, które są globalnie unikalnym identyfikatorem etykiety.

  • LabelView to LABEL_VIEW_FULL, aby ustawić widok zasobów stosowany do odpowiedzi z etykietami. LABEL_VIEW_FULL zwraca wszystkie możliwe pola.

W tym przykładzie użyto elementu ID do aktualizacji prawidłowej etykiety.

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

Zaktualizowano etykietę, pole lub wybór, zwiększy się identyfikator wersji etykiety, a etykieta zostanie zapisana w bazie danych jako etykieta robocza. Etykieta zawiera wartość State o wartości PUBLISHED o wartości hasUnpublishedChanges=true, co oznacza, że istnieją zmiany w wersji roboczej, ale nie są one dostępne dla użytkowników. Aby zmiany stały się widoczne dla użytkowników, zaktualizowana etykieta musi mieć wartość PUBLISHED. Więcej informacji znajdziesz w artykule Cykl życia etykiety.