라벨 업데이트

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

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

업데이트가 완료되면 Drive 항목에서 변경사항을 사용하려면 결과 초안 버전을 게시해야 합니다.

라벨 객체 업데이트

라벨에는 다음과 같이 업데이트할 수 있는 다른 많은 객체 유형이 포함됩니다.

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

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

작업 카테고리

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

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

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

업데이트 요청

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

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

필드 마스크

많은 '업데이트' 및 '사용 중지' 유형 요청에는 FieldMask가 필요합니다. 이는 업데이트하려는 필드의 쉼표로 구분된 목록으로, 다른 필드는 변경하지 않습니다. 마스크는 수정하려는 필드만 업데이트되도록 보장하는 데 필요합니다. 필드를 하나 이상 지정해야 합니다.

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

다음도 지정해야 합니다.

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

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

  • property 메서드를 통한 라벨 title

  • 하나 이상의 Field.

  • 모든 라벨을 나타내는 라벨 리소스입니다. 리소스 NameID(라벨의 전역 고유 식별자)가 포함됩니다.

  • LabelView는 라벨 응답에 적용된 리소스 뷰를 설정하는 LABEL_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여야 합니다. 자세한 내용은 라벨 수명 주기를 참고하세요.