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 niej nowy Field.

Aktualizacja etykiety działa jak aktualizacja zbiorcza, ponieważ metoda przyjmuje listę obiektów update Request. Aktualizacje są wprowadzane w kolejności określonej w żądaniu zbiorczym. Aktualizacje w aktualizacji zbiorczej są stosowane niepodzielnie. Oznacza to, że jeśli którekolwiek żądanie w partii nie zostanie zrealizowane, cała aktualizacja się nie powiedzie i żadne (potencjalnie zależne) zmiany nie zostaną zastosowane. Etykieta pozostaje bez zmian.

Jeśli aktualizacja się powiedzie, powstałą wersję roboczą należy opublikować, 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ć, np.:

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

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

Kategorie operacji

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

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

W następnej sekcji używamy tych kategorii do opisania działania poszczególnych operacji.

Prośby o aktualizację

Metoda labels.delta działa w ten sposób, że przyjmuje co najmniej 1 obiekt Request, z którego każdy określa jeden typ żądania do wykonania. Istnieje wiele różnych rodzajów próśb. Oto podział typów żądań na różne kategorie.

Typ żądania
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 „Aktualizuj” i „Wyłącz” wymaga FieldMask. Jest to lista rozdzielonych przecinkami pól, które chcesz zaktualizować, pozostawiając inne pola bez zmian. Maska jest wymagana, aby mieć pewność, że zaktualizowane zostaną tylko pola, które chcesz edytować. Musisz określić co najmniej 1 pole.

Przykład

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

Musisz też podać:

  • useAdminAccess to true, aby używać danych logowania administratora. Serwer sprawdza, czy użytkownik jest administratorem etykiety, zanim zezwoli na dostęp.

  • Request, który określa aktualizacje mające zastosowanie do etykiety.

  • Etykietę title za pomocą metody property.

  • Co najmniej 1 Field.

  • Zasób etykiety reprezentujący każdą etykietę. Zawiera zasób Name i ID, który jest globalnie unikalnym identyfikatorem wytwórni.

  • LabelView to LABEL_VIEW_FULL, aby ustawić widok zasobu zastosowany do odpowiedzi na etykiety. LABEL_VIEW_FULL zwraca wszystkie możliwe pola.

W tym przykładzie użyto znacznika ID, aby zaktualizować prawidłową etykietę.

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

Etykieta, pole lub wybór zostaną zaktualizowane, identyfikator wersji etykiety zostanie zwiększony, a etykieta zostanie zapisana w bazie danych jako etykieta w wersji roboczej. Etykieta ma ikonę State o wartości PUBLISHEDhasUnpublishedChanges=true, co oznacza, że istnieją zmiany w wersji roboczej, ale nie są one dostępne dla użytkowników. Zaktualizowana etykieta musi zostać PUBLISHED, zanim zmiany staną się widoczne dla użytkowników. Więcej informacji znajdziesz w artykule Cykl życia etykiety.