GlideDBFunctionCaseBuilder - 전역
GlideDBCaseStatementBuilder API를 사용하면 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 - build()
조건 목록을 종료하고 최종 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_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 표현식이 충족되지 않는 경우 출력할 값을 지정할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 특급 | 문자열 | 출력할 값입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | 문을 계속 빌드하기 위한 Fluent Builder 개체입니다. |
다음 예제에서는 간단한 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_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() 표현식이 충족되는 경우 출력할 값을 지정할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 특급 | 문자열 | 출력할 값입니다. 상수, 필드 참조 또는 다른 Glide 함수일 수 있습니다. |
| 유형 | 설명 |
|---|---|
| GlideDBFunctionCaseBuilder | 문을 계속 빌드하기 위한 Fluent Builder 개체입니다. |
다음 예제에서는 간단한 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_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(문자열 기능)
지원되는 'when' 표현식 중 가장 다재다능한 when() 메서드를 사용하면 충족할 조건으로 부울 값 Glide 함수를 제공할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 기능 | 문자열 | 평가 시 부울 값 결과를 도출하는 Glide 함수입니다. 가능한 값:
|
| 유형 | 설명 |
|---|---|
| glideDBFunctionCaseBuilder | 명령문 빌드를 계속할 객체입니다. |
다음 예제에서는 간단한 case 문을 정의하고 작성하는 방법을 보여 줍니다. 이 경우 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(String exp1, String op, String exp2)
비교 케이스 조건을 시작합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| exp1 | 문자열 | 왼쪽 비교 식입니다. 상수, 필드 참조 또는 다른 Glide 함수일 수 있습니다. |
| 운영 | 문자열 | 따옴표로 묶은 비교 연산자입니다. 유효한 값은 다음과 같습니다.
|
| 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_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)와 동일합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 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_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