Aktualizowanie etykiety

Pojedynczą etykietę możesz zaktualizować, stosując zestaw żądań aktualizacji, które spowodują utworzenie nowej wersji roboczej. Możesz na przykład zaktualizować istniejącą właściwość etykiety (opis etykiety ) lub dodać do etykiety nowe Field.

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

Jeśli aktualizacja się powiedzie, przed użyciem zmian w dowolnym elemencie Dysku należy opublikować utworzoną wersję roboczą.

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 właściwości opcji wyboru

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órzDodawanie obiektów.
ZaktualizujAktualizowanie niektórych właściwości obiektu.
WłączWłączanie obiektów.
WyłączWyłączanie obiektów.
UsuńUsuwanie obiektów.

W następnej sekcji te kategorie zostaną użyte do opisania działania poszczególnych operacji.

Żądania aktualizacji

Metoda labels.delta działa przyjmując co najmniej 1 obiekt Request, z których każdy określa 1 typ żądania do wykonania. Istnieje wiele różnych rodzajów żądań. Oto zestawienie typów żądań, pogrupowanych w 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
Opcja wyboru
Utwórz CreateSelectionChoiceRequest
Zaktualizuj UpdateSelectionChoicePropertiesRequest
Włącz EnableSelectionChoiceRequest
Wyłącz DisableSelectionChoiceRequest
Usuń DeleteSelectionChoiceRequest

Maski pól

Wiele żądań typu "Zaktualizuj" i "Wyłącz" wymaga parametru FieldMask. Jest to rozdzielona przecinkami lista pól, które chcesz zaktualizować, pozostawiając inne pola bez zmian. Maska jest wymagana, aby mieć pewność, że zaktualizowane zostaną tylko te pola, które chcesz edytować. Musisz podać co najmniej 1 pole.

Przykład

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

Musisz też określić:

  • useAdminAccess ma wartość 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 odpowiednie aktualizacje etykiety.

  • Etykieta title za pomocą metody property.

  • Co najmniej 1 Field.

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

  • LabelView ma wartość LABEL_VIEW_FULL, aby ustawić widok zasobu stosowany do odpowiedzi etykiet. LABEL_VIEW_FULL zwraca wszystkie możliwe pola.

W tym przykładzie do zaktualizowania prawidłowej etykiety używamy parametru ID.

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 opcja są aktualizowane, identyfikator wersji etykiety jest zwiększany, a etykieta jest przechowywana w bazie danych jako wersja robocza. Etykieta ma State z PUBLISHED z hasUnpublishedChanges=true, co oznacza, że istnieją zmiany w wersji roboczej, ale nie są one dostępne dla użytkowników. Zaktualizowana etykieta musi mieć stan PUBLISHED, zanim zmiany staną się widoczne dla użytkowników. Więcej informacji znajdziesz w artykule Cykl życia etykiety.