동적 스키마
범주, 그룹 및 속성의 계층 구조를 정의하고 사용자가 기록에서 속성 그룹을 선택할 수 있도록 합니다.
주요 이점
- 테이블에 새 열을 추가하는 대신 유연한 스키마로 메타데이터를 구성하고 정의합니다.
- 동적 속성을 그룹화하기 위한 구조적 프레임워크를 정의합니다.
- 기록마다 다른 속성을 사용하여 데이터를 동적으로 캡처합니다.
동적 스키마 워크플로우
- 메타데이터 전략을 계획합니다.
- 속성 그룹을 생성합니다.
- 각 그룹에 동적 속성을 추가합니다.
- 그룹을 범주로 구성합니다.
- 테이블에 동적 속성 스토어 필드를 추가합니다.
- GlideRecord setValue() 메서드를 사용하여 동적 애트리뷰트 저장소 필드를 채웁니다.
사용 케이스
- 제품에 대한 동적 스키마를 정의하여 대형 백화점에서 판매되는 제품을 설명하는 속성-값 쌍 그룹을 캡처합니다. 속성과 해당 데이터를 동적 속성 저장소 필드에 저장합니다.
예를 들어 TV, 자외선 차단제, 베개 및 셔츠와 같은 다양한 유형의 제품에 대한 레코드를 저장하는 사용자 지정 Products 테이블이 있다고 가정합니다. 각 제품 유형(예: 화면 유형, UPC, 색상 또는 크기)에 대한 동적 속성 그룹을 만들 수 있습니다. 그룹을 동적 범주(예: 전자 제품, 건강 및 미용, 가정용품 및 의류)로 구성할 수 있습니다. 사용자는 Products 테이블에 레코드를 추가하고 각 제품 레코드에서 서로 다른 속성을 캡처할 수 있습니다.
- 하나 이상의 동적 속성-값 쌍을 동적 속성 저장소 필드의 문자열 개체로 캡처하여 기록을 설명합니다. 동적 속성 저장소 필드를 테이블에 추가하고 GlideRecord API를 사용하여 문자열 데이터로 필드를 채워 기록의 임시 속성-값 쌍을 캡처할 수도 있습니다.
API
동적 스키마는 JavaScript를 사용하여 테이블의 동적 속성에 액세스하고 관리할 수 있는 전역 API도 제공합니다. 다음은 동적 특성을 지원하는 API 및 메서드입니다.
- DynamicSchemaAPI - Global
- GlideAggregate - Global
다음 GlideAggregate 메서드만 동적 속성의 사용을 지원합니다.
- GlideAggregate - addAggregate(String agg, String name)
- GlideAggregate - addHaving(String aggName, String fieldName, String operator, String value)
- GlideAggregate - getDynamicAttributeValue(String fullPath)
- GlideAggregate - getDynamicAttributeValue(String dynamicAttributeField, String groupAttrPath)
- GlideAggregate - getDynamicAttributeDisplayValue(String fullPath)
- GlideAggregate - getDynamicAttributeDisplayValue(String dynamicAttributeField, String groupAttrPath)
- GlideAggregate - getValue(String name)
- GlideAggregate - groupBy(String name)
- GlideAggregate - orderBy(String name)
- GlideAggregate - orderByAggregate(String agg, String fieldName)
- GlideDynamicAttributeStore - Global
- GlideElementDynamicAttributeStore - Global
- GlideRecord - Global
다음 GlideRecord 메서드만 동적 속성을 지원합니다.
- GlideRecord - addQuery(String name, Object operator, Object value)
- GlideRecord - getDisplayValue(String name)
- GlideRecord - getDynamicAttribute(String fullPath)
- GlideRecord - getDynamicAttribute(String dynamicAttributeField, String groupAttrPath)
- GlideRecord - getDynamicAttributeDisplayValue(String fullPath)
- GlideRecord - getDynamicAttributeDisplayValue(String dynamicAttributeField, String groupAttrPath)
- GlideRecord - getDynamicAttributeValue(String fullPath)getDynamicAttributeValue (문자열 fullPath)
- GlideRecord - getDynamicAttributeValue(String dynamicAttributeField, String groupAttrPath)
- GlideRecord - getValue(String fieldName)
- GlideRecord - orderBy(String fieldName)
- GlideRecord - orderByDesc(String fieldName)
- GlideRecord - setDisplayValue(String name, Object value)
- GlideRecord - setDynamicAttributeDisplayValue(String fullPath, Object value)
- GlideRecord - setDynamicAttributeDisplayValue(String dynamicAttributeField, String groupAttrPath, Object value)
- GlideRecord - setDynamicAttributeValue(String fullPath, Object value)
- GlideRecord - setDynamicAttributeValue(String dynamicAttributeField, String groupAttrPath, Object value)
- GlideRecord - setDynamicAttributeValues(String dynamicAttributeField, GlideDynamicAttributeStore values)
- GlideRecord - setValue(String name, Object value)