GlideDBFunctionCaseBuilder - 전역
GlideDBCaseStatementBuilder를 사용하면 SQL CASE 문을 작성하고 일련의 조건을 기반으로 값을 반환할 수 있습니다.
이 API는 GlideElement - 전역 API 정의의 일부로 사용하거나 테이블을 쿼리할 때 사용할 수 있습니다. CASE 문을 빌드하려면 먼저 해당 생성자인 GlideDBFunctionCaseBuilder()를 사용하여 GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다. 그런 다음 일련의 when() 및 then() 호출과 단일 선택적 Otherwise() 호출을 사용하여 하나 이상의 케이스를 정의합니다. 마지막으로 build() 메서드를 호출하여 빌더를 마무리하고 완료된 데이터베이스 함수 case 문을 생성합니다. 그런 다음 이 문을 직접 사용하거나 다른 Glide 함수 정의의 일부로 사용할 수 있습니다.
필요한 역할: Admin, function_field_admin.
GlideDBFunctionCaseBuilder - GlideDBFunctionCaseBuilder()
GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
이 예에서는 GlideDBFunctionCaseBuilder 객체를 인스턴스화합니다.
var caseBuilder = new GlideDBFunctionCaseBuilder();
GlideDBFunctionCaseBuilder - 빌드()
조건 목록을 마무리하고 최종 CASE 문을 작성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 완료된 케이스 명세서입니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 영향 필드의 숫자 값에 따라 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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(10);
gr.query();
while(gr.next()) {
gs.info("impact: {0} case: {1}",
[gr.impact, gr.getValue(caseStatment)]);
}
출력:
*** 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 - then(String exp)
when() 메소드에 이어 then()을 사용하면 when() 표현식이 충족되면 출력 할 값을 지정할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 특급 | 문자열 | 출력할 값입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | Fluent 빌더 객체는 문을 계속 빌드합니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 이 경우 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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(10);
gr.query();
while(gr.next()) {
gs.info("impact: {0} case: {1}",
[gr.impact, gr.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 - 그렇지 않으면(String exp)
옵션입니다. when 및 then에 대한 한 쌍 이상의 호출 후에 Otherwise() 호출을 사용하면 when 표현식이 충족되지 않는 경우 출력할 값을 지정할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 특급 | 문자열 | 출력할 값입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | Fluent 빌더 객체는 문을 계속 빌드합니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다.
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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(10);
gr.query();
while(gr.next()) {
gs.info("impact: {0} case: {1}",
[gr.impact, gr.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(String func)
지원되는 'when' 표현식 중 가장 다재다능한 when() 메서드를 사용하면 부울 값 Glide 함수를 충족 조건으로 제공할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| Func | 문자열 | 평가 시 부울 값 결과를 생성하는 Glide 함수입니다. 가능한 값:
|
| 유형 | 설명 |
|---|---|
| glideDBFunctionCaseBuilder | 문을 계속 빌드할 개체입니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 이 경우 when() 메서드를 사용하여 더 복잡한 비교 표현식을 지정합니다. 식이 true로 평가되면 해당 문자열이 반환됩니다.
const caseStatment = 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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(20);
gr.query();
while(gr.next()) {
gs.info("impact: {0} category: {1} case: {2}",
[gr.impact, gr.category, gr.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, 문자열 op, 문자열 exp2)
비교 케이스 조건을 시작합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| exp1 | 문자열 | 왼쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| Op | 문자열 | 따옴표로 묶인 비교 연산자입니다. 다음 중 하나여야 합니다.
|
| exp2 | 문자열 | 오른쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | 명령문을 계속 빌드할 함수 작성기 개체입니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 이 경우 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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(10);
gr.query();
while(gr.next()) {
gs.info("impact: {0} case: {1}",
[gr.impact, gr.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(String exp1, String exp2)
whenCompare()와 마찬가지로 whenEqual()은 같음을 확인하는 편리한 방법입니다. whenCompare(leftExpression, '=', rightExpression)와 동일합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| exp1 | 문자열 | 왼쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| exp2 | 문자열 | 오른쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | 명령문을 계속 빌드할 함수 작성기 개체입니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 이 경우 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 = new GlideRecord("incident");
gr.addFunction(caseStatement);
gr.setLimit(10);
gr.query();
while(gr.next()) {
gs.info("impact: {0} case: {1}",
[gr.impact, gr.getValue(caseStatment)]);
}
출력:
*** 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