라벨 업데이트

일련의 업데이트 요청을 적용하여 단일 라벨을 업데이트하면 새로운 초안 버전이 생성됩니다. 예를 들어 기존 라벨 속성 (라벨 설명)을 업데이트하거나 새 Field를 라벨에 추가할 수 있습니다.

메서드가 업데이트 Request 객체 목록을 가져올 때 라벨 업데이트는 일괄 업데이트 역할을 합니다. 일괄 요청에 지정된 순서와 동일한 순서로 업데이트합니다. 일괄 업데이트의 업데이트는 원자적으로 적용됩니다. 즉, 배치의 요청이 실패하면 전체 업데이트가 실패하고 (잠재적으로 종속된) 변경사항이 적용되지 않습니다. 라벨은 변경되지 않습니다.

업데이트가 성공하면 최종 수정본을 게시한 후에야 모든 Drive 항목에 변경사항을 사용할 수 있습니다.

라벨 객체 업데이트

라벨에는 업데이트할 수 있는 그 밖의 많은 객체 유형이 포함됩니다. 예를 들면 다음과 같습니다.

  • 라벨 속성
  • 필드 및 필드 유형
  • 선택 항목 및 선택 선택 속성

이러한 객체는 라벨의 모양과 작동을 제어하는 여러 객체 중 일부입니다.

운영 카테고리

labels.delta 메서드에서 지원되는 다음과 같은 작업은 다음과 같은 광범위한 카테고리로 그룹화할 수 있습니다.

카테고리 설명
만들기객체를 추가합니다.
업데이트객체의 특정 속성을 업데이트합니다.
사용 설정객체를 사용 설정합니다.
사용 중지객체를 사용 중지합니다.
삭제객체 삭제

이러한 카테고리는 다음 섹션에서 특정 작업의 동작을 설명하는 데 사용됩니다.

업데이트 요청

labels.delta 메서드는 Request 객체를 하나 이상 취하며 각 객체는 수행할 단일 유형의 요청을 지정합니다. 다양한 종류의 요청이 있습니다. 다음은 다양한 카테고리로 그룹화된 요청 유형입니다.

요청 유형
라벨 속성
업데이트 UpdateLabelPropertiesRequest
필드
만들기 CreateFieldRequest
업데이트 UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
사용 설정 EnableFieldRequest
사용 중지 DisableFieldRequest
삭제 DeleteFieldRequest
제품 선택
만들기 CreateSelectionChoiceRequest
업데이트 UpdateSelectionChoicePropertiesRequest
사용 설정 EnableSelectionChoiceRequest
사용 중지 DisableSelectionChoiceRequest
삭제 DeleteSelectionChoiceRequest

필드 마스크

'Update' 및 'Disable' 유형 요청에는 대부분 FieldMask이 필요합니다. 다른 필드는 변경하지 않고 그대로 두고 업데이트하려는 쉼표로 구분된 필드 목록입니다. 수정하려는 필드만 업데이트되도록 하기 위해 마스크가 필요합니다. 필드를 하나 이상 지정해야 합니다.

라벨을 업데이트하려면 labels 컬렉션에서 delta 메서드를 사용합니다.

다음 항목도 지정해야 합니다.

  • useAdminAccess는 사용자의 관리자 사용자 인증 정보를 사용하기 위한 true입니다. 서버는 액세스를 허용하기 전에 사용자가 라벨 관리자인지 확인합니다.

  • 라벨에 적용 가능한 업데이트를 지정하는 Request입니다.

  • property 메서드를 통한 title 라벨

  • 하나 이상의 Field

  • 모든 라벨을 나타내는 라벨 리소스입니다. 라벨의 전역적으로 고유한 식별자인 리소스 NameID를 포함합니다.

  • LabelViewLABEL_VIEW_FULL이며 라벨 응답에 적용되는 리소스 뷰를 설정합니다. LABEL_VIEW_FULL는 가능한 모든 필드를 반환합니다.

이 예에서는 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);
});

라벨, 필드 또는 선택 항목이 업데이트되고, 라벨의 버전 ID가 증가하고, 라벨이 데이터베이스에 초안 라벨로 저장됩니다. 라벨에는 PUBLISHEDState가 있으며 hasUnpublishedChanges=true는 초안 변경사항이 있지만 사용자가 사용할 수 없음을 의미합니다. 업데이트된 라벨은 PUBLISHED여야 변경사항이 사용자에게 표시됩니다. 자세한 내용은 라벨 수명 주기를 참고하세요.