GlideDynamicAttributeStore - 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 27분
  • GlideDynamicAttributeStore API는 문자열, 날짜 또는 날짜/시간과 같은 다른 데이터 유형과 유사한 동적 속성 저장소 데이터 유형에 대한 액세스를 제공합니다.

    이 API는 GlideDynamicAttribute 객체 내에서 동적 스키마 속성을 가져오고 설정할 수 있는 메서드를 제공합니다. 이러한 동적 속성을 사용하면 테이블의 각 행에 서로 다른 필드를 포함할 수 있습니다. 이 데이터 유형이 적용되는 필드는 테이블의 열 데이터 유형 설명에 dynamic_attribute_store 표시됩니다. 동적 속성에 대한 자세한 내용은 동적 스키마를 참조하세요.

    이 API를 사용하여 동적 속성을 만들려면 dynamic_schema_writer 역할이 있어야 합니다. 이 API를 사용하여 동적 데이터를 읽으려면 dynamic_schema_reader 역할이 있어야 합니다.

    다음 스크린샷은 이 API의 코드 예제에서 사용되는 동적 속성 그룹 및 연결된 동적 속성을 보여 줍니다. 정의된 속성은 동적 스키마 구현이 지원하는 각 데이터 유형의 예를 제공합니다.
    동적 속성 그룹 설정

    이 API에는 GlideRecord API의 동적 스키마 메서드와 동일한 기능을 가진 메서드가 있습니다. 여러 기록에 동일한 동적 속성 그룹을 설정하려면 이 API를 사용합니다. 이 API를 사용하면 원하는 속성으로 GlideDynamicAttributeStore 객체를 스테이징한 다음 다양한 setDynamicAttributeValues() 메서드를 사용하여 해당 객체를 여러 GlideRecord에 복사할 수 있습니다. GlideRecord API에서 유사한 동적 스키마 메서드를 사용하면 지정된 GlideRecord에 대한 작업이 수행됩니다.

    GlideDynamicAttributeStore - 지우기()

    GlideDynamicAttributeStore 객체에서 모든 속성과 해당 값을 지웁니다.

    표 1. 매개변수
    이름 유형 설명
    없음
    표 2. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5234);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.clear();
    gs.info('das: ' + das.getDisplayValue());

    출력:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:29:52",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: null

    GlideDynamicAttributeStore - getDisplayValue()

    현재 GlideDynamicAttributeStore 객체에 저장된 값의 JSON 맵 표현을 반환합니다.

    이 메서드는 다음을 반환합니다.
    • 부울 값은 1과 0 대신 "true" 및 "false"입니다.
    • UTC 대신 사용자 로캘의 날짜/시간 값입니다.
    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    문자열 GlideDynamicAttributeStore 객체에 저장된 값의 사람이 읽을 수 있는 JSON 맵입니다. 이 문자열의 내용은 동적 스키마 정의에 따라 달라집니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    출력:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore - getDynamicAttributes()

    저장소에 있는 동적 속성 정의 집합을 반환합니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    배열 저장소에 있는 모든 일시적 및 비일시적 동적 속성을 포함하는 배열입니다.
    • GlideDynamicAttribute 객체입니다. 동적 속성은 데이터 유형 및 sys-id를 사용하여 동적 속성 [dynamic-attribute] 테이블에 정의됩니다.
    • GlideTransientDynamicAttribute 개체입니다. 임시 동적 특성은 동적 특성 [dynamic_attribute] 테이블에 정의 없이 DynamicAttributeStore 필드에 추가된 동적 특성입니다. 일시적인 동적 속성은 문자열로 처리되며 sys_id 없습니다.

    다음 예제에서는 임시 및 비임시 동적 속성을 검색하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('a->b', 5);    // transient (adding here)
    das.setDynamicAttributeValue('a->c', 10);   // defined in dynamic_attribute table
    
    var attributes = das.getDynamicAttributes();
    gs.info(attributes);
    
    for (var i = 0; i < attributes.length; i++) {
        var attr = attributes[i];
    	
        gs.info("");
        gs.info("[" + i + "].getPath()      = " + attr.getPath());
        gs.info("[" + i + "].getName()      = " + attr.getName());
        gs.info("[" + i + "].getSysId()     = " + attr.getSysId());
        gs.info("[" + i + "].isTransient()  = " + attr.isTransient());
        gs.info("[" + i + "].getType()      = " + attr.getType());
    }

    출력:

    *** Script: a->c,a->b
    *** Script: 
    *** Script: [0].getPath()      = a->c
    *** Script: [0].getName()      = c
    *** Script: [0].getSysId()     = 8bc411a94fc01210b8ddc0e552ce0b3c
    *** Script: [0].isTransient()  = false
    *** Script: [0].getType()      = integer
    *** Script: 
    *** Script: [1].getPath()      = a->b
    *** Script: [1].getName()      = b
    *** Script: [1].getSysId()     = undefined
    *** Script: [1].isTransient()  = true
    *** Script: [1].getType()      = string

    GlideDynamicAttributeStore - getDynamicAttributeValue(String groupAttrPath)

    동적 속성 저장소 요소 내에서 지정된 속성의 값을 반환합니다.

    표 7. 매개변수
    이름 유형 설명
    groupAttrPath 문자열 연결된 동적 스키마 속성을 찾는 데 사용할 속성 경로입니다.
    형식: "group_name->attr_name"
    • group_name: 속성이 연결된 그룹의 이름입니다.

      테이블: 동적 속성 그룹 [dynamic_attribute_group] 테이블의 이름 필드 또는 동적 속성 [dynamic_attribute] 테이블의 그룹 필드

    • attr_name: 동적 그룹 내의 동적 속성 이름입니다.

      테이블: 동적 속성 [dynamic_attribute] 테이블의 이름 필드

    예: "car->color"

    표 8. 반환
    유형 설명
    객체 전달된 그룹/속성 경로에서 참조하는 동적 스키마 속성의 값입니다.

    attributePath 매개 변수에 잘못된 정보가 포함되어 있으면 null을 반환합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->color"));
    gs.info('Value returned by getDynamicAttributeValue(): ' + das.getDynamicAttributeValue("cars->luxury"));
    

    출력:

    *** Script: Value returned by getDynamicAttributeValue(): blue
    *** Script: Value returned by getDynamicAttributeValue(): 1

    GlideDynamicAttributeStore - getValue()

    현재 GlideDynamicAttributeStore 객체 내용의 압축된 문자열 표현을 반환합니다.

    이 메서드는 다음을 반환합니다.
    • 부울 값은 "true" 및 "false" 대신 1과 0입니다.
    • 사용자의 로캘 대신 UTC의 날짜/시간 값입니다.
    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    문자열 GlideDynamicAttributeStore 객체에 저장된 값의 압축된 문자열 표현입니다. 이 문자열의 내용은 동적 스키마 정의에 따라 달라집니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    출력:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore - setDisplayValue(객체 값)

    현재 GlideDynamicAttributeStore 객체를 지우고 전달된 JSON 맵을 GlideDynamicAttributeStore 객체에 저장합니다.

    이 메서드는 모든 날짜 값이 사용자의 로캘로 제공된다고 가정한다는 점을 제외하고는 기능적으로 동일합니다 GlideDynamicAttributeStore - setValue(객체 값).

    표 11. 매개변수
    이름 유형 설명
    객체 현재 동적 속성 저장소 객체에서 설정할 값입니다.
    전달된 값은 다음 데이터 형식 중 하나여야 합니다.
    • 부울(예/아니오)
    • 10진수
    • 부동 소수점 숫자
    • GlideDate
    • Glide날짜/시간
    • 정수
    • 문자열
    표 12. 반환
    유형 설명
    없음

    다음 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getDisplayValue());

    출력:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5",
        "color" : "blue",
        "cost" : "12000.0",
        "date_purchased" : "2024-04-19 14:16:49",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324.0"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeDisplayValue(String groupAttrPath, 객체 값)

    동적 속성 저장소 요소 내의 지정된 경로에 있는 동적 속성의 값을 설정합니다.

    이 메서드는 Boolean 및 날짜/시간 값을 처리하는 것을 제외하고는 메서드와 GlideDynamicAttributeStore - setDynamicAttributeValue(String groupAttrPath, 객체 값) 동일하게 작동합니다. 이 메서드는 모든 날짜/시간 값이 사용자의 로캘로 제공된다고 가정합니다.

    표 13. 매개변수
    이름 유형 설명
    groupAttrPath 문자열 연결된 동적 스키마 속성을 찾는 데 사용할 속성 경로입니다.
    형식: "group_name->attr_name"
    • group_name: 속성이 연결된 그룹의 이름입니다.

      테이블: 동적 속성 그룹 [dynamic_attribute_group] 테이블의 이름 필드 또는 동적 속성 [dynamic_attribute] 테이블의 그룹 필드

    • attr_name: 동적 그룹 내의 동적 속성 이름입니다.

      테이블: 동적 속성 [dynamic_attribute] 테이블의 이름 필드

    예: "car->color"

    객체 지정된 속성에 설정할 값입니다.
    주:
    동적 특성의 경우 다음 데이터 유형만 지원됩니다.
    • 부울(예/아니오)
    • 10진수
    • 부동 소수점 숫자
    • GlideDate
    • Glide날짜/시간
    • 정수
    • 문자열
    표 14. 반환
    유형 설명
    객체 GlideDynamicAttributeStore 개체를 업데이트했습니다.

    groupAttrPath 매개 변수가 유효하지 않으면 메서드가 IllegalArgumentException을 throw합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeDisplayValue("cars->color","blue");
    das.setDynamicAttributeDisplayValue("cars->make","Toyota");
    das.setDynamicAttributeDisplayValue("cars->model","CRV");
    das.setDynamicAttributeDisplayValue("cars->luxury","true");
    das.setDynamicAttributeDisplayValue("cars->cost",12000.5);
    das.setDynamicAttributeDisplayValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeDisplayValue("cars->total_miles", 5324);    
    das.setDynamicAttributeDisplayValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.getDisplayValue());
    das.setDisplayValue('{"cars":{"luxury":"false"}}');
    gs.info('das: ' + das.getDisplayValue());

    출력:

    *** Script: das: {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 10:40:45",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }
    *** Script: das: {
      "cars" : {
        "luxury" : "false"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeValue(String groupAttrPath, 객체 값)

    지정된 그룹/속성 경로에서 참조하는 동적 속성을 지정된 값으로 설정합니다.

    표 15. 매개변수
    이름 유형 설명
    groupAttrPath 문자열 연결된 동적 스키마 속성을 찾는 데 사용할 속성 경로입니다.
    형식: "group_name->attr_name"
    • group_name: 속성이 연결된 그룹의 이름입니다.

      테이블: 동적 속성 그룹 [dynamic_attribute_group] 테이블의 이름 필드 또는 동적 속성 [dynamic_attribute] 테이블의 그룹 필드

    • attr_name: 동적 그룹 내의 동적 속성 이름입니다.

      테이블: 동적 속성 [dynamic_attribute] 테이블의 이름 필드

    예: "car->color"

    객체 지정된 속성에 설정할 값입니다.
    주:
    동적 특성의 경우 다음 데이터 유형만 지원됩니다.
    • 부울(예/아니오)
    • 10진수
    • 부동 소수점 숫자
    • GlideDate
    • Glide날짜/시간
    • 정수
    • 문자열
    표 16. 반환
    유형 설명
    객체 GlideDynamicAttributeStore 개체를 업데이트했습니다.

    groupAttrPath 매개 변수가 유효하지 않으면 메서드가 IllegalArgumentException을 throw합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('Value returned by getValue(): ' + das.getValue());
    gs.info('Value returned by getDisplayValue(): ' + das.getDisplayValue());

    출력:

    *** Script: Value returned by getValue(): {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":1,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 15:33:23"}}
    *** Script: Value returned by getDisplayValue(): {
      "cars" : {
        "avg_mpg" : "24.5234",
        "color" : "blue",
        "cost" : "12000.5",
        "date_purchased" : "2024-04-19 08:33:23",
        "luxury" : "true",
        "make" : "Toyota",
        "model" : "CRV",
        "total_miles" : "5324"
      }
    }

    GlideDynamicAttributeStore - setDynamicAttributeValues(객체 값)

    필드의 내부 JSON 저장소를 전달된 값의 문자열 표현으로 설정합니다. 전달된 값이 GlideDynamicAttributeStore 개체의 다른 인스턴스인 경우 해당 개체의 값을 현재 개체로 복사합니다.

    표 17. 매개변수
    이름 유형 설명
    객체 연결된 GlideRecord에 값으로 저장할 JSON 객체입니다. 메서드는 잘못된 JSON 값을 무시합니다.
    표 18. 반환
    유형 설명
    객체 GlideDynamicAttributeStore 개체를 업데이트했습니다.

    다음 예제에서는 특성/값 쌍을 GlideDynamicAttributeStore 개체에 저장한 다음 동일한 값을 한 개체에서 다른 개체로 복사하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    var otherValues = new GlideDynamicAttributeStore();
    otherValues.setDynamicAttributeValue("position->x", 5);
    otherValues.setDynamicAttributeValue("position->y", 6);
    
    das.setDynamicAttributeValues(otherValues);
    gs.info(das);

    출력:

    {"_position":{"x":"5.0","y":"6.0"}}

    GlideDynamicAttributeStore - setValue(객체 값)

    현재 GlideDynamicAttributeStore 객체를 지우고 전달된 JSON 맵을 해당 GlideDynamicAttributeStore 객체에 저장합니다.

    이 메서드는 모든 날짜 값이 UTC에 있다고 가정한다는 점을 제외하고 기능적으로 동일합니다 GlideDynamicAttributeStore - setDisplayValue(객체 값) .

    표 19. 매개변수
    이름 유형 설명
    객체 GlideDynamicAttributeStore 객체에 저장할 JSON 맵 객체입니다.

    예: '{"cars":{"cost":"12500"}}'

    이 메서드는 잘못된 JSON 값을 무시합니다.
    표 20. 반환
    유형 설명
    없음

    다음 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000.5);
    das.setDynamicAttributeValue("cars->avg_mpg", 24.5234);
    das.setDynamicAttributeValue("cars->total_miles", 5324);    
    das.setDynamicAttributeValue("cars->date_purchased", new GlideDateTime());
    gs.info('das: ' + das.getValue());
    das.setValue('{"cars":{"luxury":false}}');
    gs.info('das: ' + das.getValue());

    출력:

    *** Script: das: {"cars":{"total_miles":5324,"color":"blue","model":"CRV","cost":12000.5,"luxury":true,"avg_mpg":24.5234,"make":"Toyota","date_purchased":"2024-04-19 17:28:47"}}
    *** Script: das: {"cars":{"luxury":false}}

    GlideDynamicAttributeStore - toString()

    GlideDynamicAttributeStore 개체의 콘텐츠를 문자열로 반환합니다.

    표 21. 매개변수
    이름 유형 설명
    없음
    표 22. 반환
    유형 설명
    문자열 GlideDynamicAttribute 객체를 문자열로 사용할 수 있습니다.

    예: '{"group":{"attr2":"true","attr1":"42.0"}}'

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color","blue");
    das.setDynamicAttributeValue("cars->make","Toyota");
    das.setDynamicAttributeValue("cars->model","CRV");
    das.setDynamicAttributeValue("cars->luxury",true);
    das.setDynamicAttributeValue("cars->cost",12000);
    das.setDynamicAttributeValue("cars->avg_mpg",24.5);
    das.setDynamicAttributeValue("cars->total_miles",5324);    
    das.setDynamicAttributeValue("cars->date_purchased",new GlideDateTime());
    gs.info('das: ' + das.toString());

    출력:

    *** Script: das: {"cars":{"cost":"12000.0","color":"blue","avg_mpg":"24.5","date_purchased":"2024-04-19 14:05:00","luxury":"true","model":"CRV","make":"Toyota","total_miles":"5324.123"}}