GlideElementDynamicAttributeStore - 전역

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기17분
  • GlideElementDynamicAttributeStore API는 현재 Glide 기록의 동적 속성을 관리하기 위한 편리한 스크립트 메서드를 제공합니다. 이러한 메서드를 GlideRecord API와 함께 사용하여 정의된 동적 속성 값을 가져오고 설정합니다.

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

    이 API는 API를 GlideElement - 전역 확장합니다.

    동적 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 Dynamic Schema.

    GlideElementDynamicAttributeStore - getDynamicAttribute(문자열 attributePath)

    지정된 동적 속성 경로에 있는 동적 속성을 나타내는 GlideElementDynamicAttribute 객체를 반환합니다.

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

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

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

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

    예: "car->color"

    표 2. 반환
    유형 설명
    GlideElementDynamicAttribute 지정된 동적 속성을 포함하는 객체입니다.

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

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

    //Gets all the values of the make attribute from the u_inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }
    
    //You can also use if(gr_Inc.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttribute('inc_dynamic_schema->cars->make');
        gs.info(attr.getValue());
    }

    GlideElementDynamicAttributeStore - getDynamicAttributesInStore()

    필드에 존재하고 저장된 동적 속성 정의 집합을 반환합니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    배열 GlideDynamicAttribute 또는 GlideTransientDynamicAttribute 객체의 배열입니다.

    다음 예제에서는 저장된 동적 특성의 내용을 검색하고, 저장된 특성 및 해당 스키마의 특성을 나열하는 방법을 보여 줍니다.

    var record = new GlideRecord('cool_thing');
    record.get('number', 'COOL0000005');
    
    gs.info("Store Contents:\n" + JSON.stringify(JSON.parse(record.store1), null, 2) + "\n");
    gs.info("Attributes in Store:\n" + record.store1.getDynamicAttributesInStore() + "\n");
    gs.info("Attributes in Schema:\n" + record.store1.getDynamicAttributesInSchema() + "\n");

    출력:

    *** Script: Store Contents:
    {
      "_a": {
        "b": "hello world"
      },
      "_group1": {
        "integer1": "5"
      },
      "_group2": {
        "integer1": "10",
        "string1": "hello"
      }
    }
    
    *** Script: Attributes in Store:
    a->b,group1->integer1,group2->integer1,group2->string1
    
    *** Script: Attributes in Schema:
    group1->integer1,group1->string1,group2->integer1

    GlideElementDynamicAttributeStore - getDynamicAttributesInSchema()

    스키마에서 가리키는 동적 속성 정의 집합을 반환합니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    배열 GlideDynamicAttribute 또는 GlideTransientDynamicAttribute 객체의 배열입니다.

    다음 예제에서는 저장된 동적 특성의 내용을 검색하고, 저장된 특성 및 해당 스키마의 특성을 나열하는 방법을 보여 줍니다.

    var record = new GlideRecord('cool_thing');
    record.get('number', 'COOL0000005');
    
    gs.info("Store Contents:\n" + JSON.stringify(JSON.parse(record.store1), null, 2) + "\n");
    gs.info("Attributes in Store:\n" + record.store1.getDynamicAttributesInStore() + "\n");
    gs.info("Attributes in Schema:\n" + record.store1.getDynamicAttributesInSchema() + "\n");

    출력:

    *** Script: Store Contents:
    {
      "_a": {
        "b": "hello world"
      },
      "_group1": {
        "integer1": "5"
      },
      "_group2": {
        "integer1": "10",
        "string1": "hello"
      }
    }
    
    *** Script: Attributes in Store:
    a->b,group1->integer1,group2->integer1,group2->string1
    
    *** Script: Attributes in Schema:
    group1->integer1,group1->string1,group2->integer1

    GlideElementDynamicAttributeStore - getDynamicAttributeDisplayValue(String attributePath)

    동적 특성 저장소 내의 지정된 특성 경로에 있는 동적 특성의 표시 값을 반환합니다. 표시 값을 사용할 수 없는 경우 내부 값을 반환합니다.

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

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

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

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

    예: "car->color"

    표 8. 반환
    유형 설명
    객체 사람이 읽을 수 있는 형식의 연결된 동적 속성 값입니다.

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

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

    //Gets all the display values of the luxury attribute from the inc_dynamic_schema dynamic attribute store column on the incident table
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    
    //You can also use if(gr.next()) if you don't want all the values
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    if(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeDisplayValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }

    GlideElementDynamicAttributeStore - getDynamicAttributeValue(String attributePath)

    동적 특성 저장소 내에 전달된 특성 경로에서 가리키는 동적 특성의 내부 값을 반환합니다.

    동적 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 Dynamic Schema.

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

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

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

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

    예: "car->color"

    표 10. 반환
    유형 설명
    객체 전달된 속성 경로가 가리키는 동적 속성의 값입니다.

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

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

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    
    while(gr_Inc.next()) {
        var attr = gr_Inc.getDynamicAttributeValue('inc_dynamic_schema->cars->luxury');
        gs.info(attr);
    }
    출력:
    
    *** Script: 1

    GlideElementDynamicAttributeStore - setDynamicAttributeValue(String attributePath, 객체 값)

    동적 속성 저장소의 지정된 특성 경로가 가리키는 특성을 지정된 값으로 설정합니다.

    동적 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 Dynamic Schema.

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

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

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

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

    예: "car->color"

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

    매개변수에 groupAttributePath 잘못된 정보가 포함되어 있으면 속성이 업데이트되지 않습니다.

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

    //This simple example inserts a make attribute on the inc_dynamic_schema column where the value of the make attribute is Ford.
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeValue('inc_dynamic_schema->cars->make', 'Ford');
    gr_Inc.insert();

    GlideElementDynamicAttributeStore - setDynamicAttributeValues(GlideDynamicAttributeStore 값)

    현재 GlideRecord 요소의 동적 속성 저장소에 전달된 GlideElementDynamicAttrbuteStore 객체에 지정된 값을 설정합니다. 현재 요소의 데이터 형식은 동적 속성 저장소로 설정해야 합니다.

    동적 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 Dynamic Schema.

    표 13. 매개변수
    이름 유형 설명
    GlideDynamicAttributeStore 현재 요소의 동적 스키마에서 설정할 값이 들어 있는 객체입니다. 이 객체에 지정되지 않은 값은 업데이트되지 않습니다.
    표 14. 반환
    유형 설명
    GlideElementDynamicAttributeStore GlideElementDynamicAttributeStore 개체를 업데이트했습니다.

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

    var gr_Inc = new GlideRecord('incident');
    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue("cars->color", "black");
    das.setDynamicAttributeValue("cars->make","Honda");
    das.setDynamicAttributeValue("cars->model","CRV");
    gr_Inc.setDynamicAttributeValues('inc_dynamic_schema', das);
    gr_Inc.insert();

    이 코드 예제에서는 u_inc_dynamic_schema 열에 다음을 삽입합니다.

    {
      "cars" : {
        "color" : "black",
        "make" : "Honda",
        "model" : "CRV"
      }
    }

    GlideElementDynamicAttributeStore - setDynamicAttributeDisplayValue(String attributePath)

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

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

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

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

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

    예: "car->color"

    객체 현재 동적 속성 요소에 설정할 값입니다.
    전달된 값은 다음 데이터 형식 중 하나여야 합니다.
    • 부울(예/아니오)
    • 10진수
    • 부동 소수점 숫자
    • GlideDate
    • Glide날짜/시간
    • 정수
    • 문자열
    표 16. 반환
    유형 설명
    GlideElementDynamicAttributeStore 업데이트된 Glide 요소를 포함하는 객체입니다.

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

    var grFleet = new GlideRecord('u_car_fleet');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->color', 'Yellow');
    grFleet.setDynamicAttributeValue('u_dyn_attr_store', 'car->make', 'Ford');
    var sysId = grFleet.insert();
    gs.info("Inserted: " + grFleet.u_dyn_attr_store);
    
    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->color', 'Green');
    daStore.setDynamicAttributeValue('car->model', 'Bronco');
    
    var geDynAttrStore = grFleet.getElement('u_dyn_attr_store');
    geDynAttrStore.setDynamicAttributeDisplayValues(daStore);
    grFleet.update();
    gs.info("Updated:  " + grFleet.u_dyn_attr_store);

    출력:

    *** Script: Inserted: {"car":{"color":"Yellow","make":"Ford"}}
    *** Script: Updated:  {"car":{"color":"Green","make":"Ford","model":"Bronco"}}

    다음 코드 예제에서는 Boolean 표시 값이 "1"로 저장되지만 다시 "true"로 전달되는 방법을 보여 줍니다.

     var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeDisplayValue('u_inc_dynamic_schema->u_cars->u_luxury', '1');
    gr_Inc.insert()

    반환된 값:

    {
      "u_cars" : {
        "u_luxury" : "true"
      }
    }

    GlideElementDynamicAttributeStore - setDynamicAttributeDisplayValues(GlideDynamicAttributeStore 값)

    현재 GlideRecord 요소의 동적 속성에서 전달된 GlideDynamicAttrbuteStore 객체에 지정된 표시 값을 설정합니다. 현재 요소의 데이터 유형은 연결된 테이블에서 동적 속성 저장소 로 설정되어야 합니다.

    표 17. 매개변수
    이름 유형 설명
    GlideDynamicAttributeStore 현재 요소의 동적 특성 저장소에 설정할 표시 값을 포함하는 객체입니다. 이 객체에 지정되지 않은 표시 값은 업데이트되지 않습니다. 이 객체에는 저장할 각 특성에 대한 특성 경로와 표시 값이 모두 포함되어야 합니다.
    예:
    {
      "car":{
        "color":"Blue",
        "make":"Ford",
        "model":"Mustang"
      }
    }
    표 18. 반환
    유형 설명
    GlideElementDynamicAttributeStore 업데이트된 Glide 요소를 포함하는 객체입니다.

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

    var daStore = new GlideDynamicAttributeStore();
    daStore.setDynamicAttributeValue('car->make', 'Ford');
    daStore.setDynamicAttributeValue('car->model', 'Mustang');
    daStore.setDynamicAttributeValue('car->color', 'Blue');
    gs.info("daStore: " + daStore);
    
    var gr_Car = new GlideRecord('u_car_fleet');
    gr_Car.query();
    while(gr_Car.next()) {
      var glideElement = gr_Car.getElement('u_dyn_attr_store');
      glideElement.setDynamicAttributeValues(daStore);
      gr_Car.update();
    }