GlideDBFunctionCaseBuilder - 전역

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 15분
  • GlideDBCaseStatementBuilder API를 사용하면 SQL CASE 문을 작성하고 일련의 조건에 따라 값을 반환할 수 있습니다.

    이 API를 API 정의 GlideElement - 전역 의 일부로 사용하거나 테이블을 쿼리할 때 사용할 수 있습니다. CASE 문을 빌드하려면 먼저 해당 생성자인 GlideDBFunctionCaseBuilder()를 사용하여 GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다. 그런 다음 일련의 when()then() 호출과 단일 선택적 elsewise() 호출을 사용하여 하나 이상의 케이스를 정의합니다. 마지막으로 build() 메서드를 호출하여 빌더를 마무리하고 완성된 데이터베이스 함수 케이스 문을 생성합니다. 그런 다음 이 문을 직접 사용하거나 다른 Glide 함수 정의의 일부로 사용할 수 있습니다.

    필요한 역할: admin, function_field_admin.

    GlideDBFunctionCaseBuilder - GlideDBFunctionCaseBuilder()

    GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다.

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

    이 예제에서는 GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다.

    var caseBuilder = new GlideDBFunctionCaseBuilder();
    

    GlideDBFunctionCaseBuilder - build()

    조건 목록을 완료하고 최종 CASE 문을 작성합니다.

    표 2. 매개변수
    이름 유형 설명
    안 함
    표 3. 반환
    유형 설명
    문자열 완료된 케이스 문.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다. 영향 필드의 숫자 값에 따라 4개의 다른 문자열 중 하나가 출력됩니다.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenCompare("impact", "'='", "'1'").then("'CRITICAL'")
        .whenCompare("impact", "'='", "'2'").then("'URGENT'")
        .whenCompare("impact", "'='", "'3'").then("'IMPORTANT'")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    출력:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT

    GlideDBFunctionCaseBuilder - 그렇지 않음(문자열 exp)

    옵션입니다. when 및 then에 대한 호출 쌍 중 하나 이상에 이어 otherwise() 호출을 사용하면 when 표현식이 충족되지 않는 경우 출력할 값을 지정할 수 있습니다.

    표 4. 매개변수
    이름 유형 설명
    경험 문자열 출력할 값입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    표 5. 반환
    유형 설명
    GlideDBFunctionCaseBuilder 문을 계속 작성할 Fluent 작성기 객체입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다.

    const caseStatement = new GlideDBCaseFunctionBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'") 
        .whenEqual("impact", "'2'").then("category")
        .whenEqual("impact", "'3'").then("length(short_description)")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    출력:

    *** Script: impact: 2  case: inquiry
    *** Script: impact: 2  case: Hardware
    *** Script: impact: 1  case:  CRITICAL
    *** Script: impact: 2  case: database
    *** Script: impact: 2  case: inquiry
    *** Script: impact: 3  case: 28
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: 17
    *** Script: impact: 3  case: 29

    GlideDBFunctionCaseBuilder - then(문자열 exp)

    when() 메서드 다음에 then()을 사용하면 when() 표현식이 충족되는 경우 출력할 값을 지정할 수 있습니다.

    표 6. 매개변수
    이름 유형 설명
    경험 문자열 출력할 값입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    표 7. 반환
    유형 설명
    GlideDBFunctionCaseBuilder 문을 계속 작성할 Fluent 작성기 객체입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다. 이 경우 then() 표현식은 문자열뿐만 아니라 length(short_description)와 같은 다른 Glide 함수의 결과도 출력할 수 있는 방법을 보여줍니다.

    const caseStatement = new GlideDBCaseFunctionBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'") 
        .whenEqual("impact", "'2'").then("category")
        .whenEqual("impact", "'3'").then("length(short_description)")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    출력:

    *** Script: impact: 2  case: inquiry
    *** Script: impact: 2  case: Hardware
    *** Script: impact: 1  case:  CRITICAL
    *** Script: impact: 2  case: database
    *** Script: impact: 2  case: inquiry
    *** Script: impact: 3  case: 28
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: 17
    *** Script: impact: 3  case: 29

    GlideDBFunctionCaseBuilder - when(문자열 func)

    지원되는 'when' 표현식 중 가장 다재다능한 when() 메서드를 사용하면 부울 값의 Glide 함수를 충족할 조건으로 제공할 수 있습니다.

    표 8. 매개변수
    이름 유형 설명
    기능 문자열 평가될 때 부울 값 결과를 생성하는 Glide 함수입니다. 가능한 값:
    • glide함수:비교
    • glidefunction:및
    • glidefunction:또는
    표 9. 반환
    유형 설명
    glideDBFunctionCaseBuilder 문을 계속 빌드할 객체입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다. 이 경우 when() 메서드를 사용하여 더 복잡한 비교 표현식을 지정합니다. 표현식이 true로 평가되면 해당 문자열이 반환됩니다.

    const caseStatement = new GlideDBFunctionCaseBuilder() 
        // if impact == 1 AND category == 'Software' then output "CRITICAL SOFTWARE" 
        .when("and(compare(impact, '=', '1'), compare(category, '=',  
    'Software')") 
            .then("'CRITICAL SOFTWARE'") 
        // if impact == 1 then output "CRITICAL OTHER" 
        .when("compare(impact, '=', '1')") 
            .then("'CRITICAL OTHER'") 
        // if impact == 2 OR category == 'Software' then output "URGENT" 
        .when("or(compare(impact, '=', '2'), compare(category, '=', 'Software')") 
            .then("'URGENT'") 
        // If none of the above expressions are true, output "NOT IMPORTANT" 
        .otherwise("'NOT IMPORTANT'") 
        .build(); 
     
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement); 
    gr_incident.setLimit(20); 
    gr_incident.query(); 
    while(gr_incident.next())  { 
          gs.info("impact: {0}  category: {1}  case: {2}", 
                [gr_incident.impact, gr_incident.category, gr_incident.getValue(caseStatement)]); 
    }

    출력:

    impact: 2  category: inquiry  case: URGENT
    impact: 2  category: Hardware  case: URGENT
    impact: 1  category: inquiry  case:  CRITICAL OTHER
    impact: 2  category: database  case: URGENT
    impact: 2  category: inquiry  case: URGENT
    impact: 3  category: software  case: URGENT
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: hardware  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: hardware  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 1  category: software  case: CRITICAL SOFTWARE
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 2  category: software  case: URGENT
    impact: 1  category: software  case: CRITICAL SOFTWARE

    GlideDBFunctionCaseBuilder - whenCompare(문자열 exp1, 문자열 연산, 문자열 exp2)

    비교 케이스 조건을 시작합니다.

    표 10. 매개변수
    이름 유형 설명
    exp1 문자열 왼쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    op 문자열 따옴표로 묶인 비교 연산자입니다.

    유효한 값은 다음과 같습니다.

    • "'='"
    • "'<'"
    • "'>'"
    • "'<='"
    • "'>='"
    exp2 문자열 오른쪽 비교 표현식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    표 11. 반환
    유형 설명
    GlideDBFunctionCaseBuilder 문을 계속 빌드할 함수 빌더 객체입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다. 이 경우 whenCompare() 메서드를 사용하여 영향 필드의 값을 숫자와 비교하고 일치하는 경우 지정된 문자열을 출력합니다.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenCompare("impact", "'='", "'1'").then("'CRITICAL'")
        .whenCompare("impact", "'='", "'2'").then("URGENT")
        .whenCompare("impact", "'='", "'3'").then("IMPORTANT")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next()) {
        gs.info("impact: {0} case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    출력:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT
    

    GlideDBFunctionCaseBuilder - whenEqual(문자열 exp1, 문자열 exp2)

    whenCompare()와 유사하게 whenEqual()은 동등을 확인하는 편리한 방법입니다. 이는 whenCompare(leftExpression, '=', rightExpression)와 동일합니다.

    표 12. 매개변수
    이름 유형 설명
    exp1 문자열 왼쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    exp2 문자열 오른쪽 비교 표현식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    표 13. 반환
    유형 설명
    GlideDBFunctionCaseBuilder 문을 계속 빌드할 함수 빌더 객체입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다. 이 경우 whenEqual() 메서드를 사용하여 영향 필드의 값을 숫자와 비교하고 일치하는 경우 지정된 문자열을 출력합니다.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'")
        .whenEqual("impact", "'2'").then("'URGENT'")
        .whenEqual("impact", "'3'").then("'IMPORTANT'")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    출력:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT