GlideDBFunctionCaseBuilder - Global
. GlideDBCaseStatementBuilder A API permite criar instruções de CASO SQL e retornar valores com base em uma série de condições.
Você pode usar esta API como parte da definição do GlideElement - Global API ou ao consultar uma tabela. Para criar um CASO , comece instanciando o objeto GlideDBFunctionCaseBuilder usando seu construtor, GlideDBFunctionCaseBuilder() . Em seguida, defina um ou mais casos usando uma série de quando() e. then() chamadas seguidas por um único opcional caso contrário () chamada. Por fim, ligue para compilação () método para finalizar o construtor e produzir a declaração de caso de função de banco de dados concluída. Esta declaração pode ser usada diretamente ou como parte de outras definições de função Glide.
Funções necessárias: Administrador, function_field_admin.
GlideDBFunctionCaseBuilder - GlideDBFunctionCaseBuilder()
Instancia um objeto GlideDBFunctionCaseBuilder.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum(a) |
Este exemplo instancia um objeto GlideDBFunctionCaseBuilder.
var caseBuilder = new GlideDBFunctionCaseBuilder();
GlideDBFunctionCaseBuilder - Build()
Conclui a lista de condições e cria a declaração DE CASO final.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| cadeia de caracteres | A declaração do caso concluída. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Dependendo do valor numérico do campo Impacto, ele gerará uma das quatro cadeias de caracteres diferentes.
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)]);
}
Saída:
*** 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 - Caso contrário (cadeia de caracteres exp)
Opcional. Após pelo menos um par de chamadas para When e THEN, a chamada OUTHER() permite especificar um valor para saída se nenhuma das expressões When for atendida.
| Nome | Tipo | Descrição |
|---|---|---|
| exp | Cadeia de caracteres | Valor para saída. Pode ser uma constante, uma referência a um campo ou outra função Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor Fluent para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples.
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)]);
}
Saída:
*** 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 (cadeia de caracteres exp)
Seguindo qualquer quando() método, then() permite que você especifique um valor para saída se quando() a expressão foi atendida.
| Nome | Tipo | Descrição |
|---|---|---|
| exp | Cadeia de caracteres | Valor para saída. Pode ser uma constante, referência a um campo ou outra função Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor Fluent para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o then() as expressões mostram como você pode produzir não apenas cadeias de caracteres, mas também os resultados de outras funções do glide, como comprimento(short_description) .
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)]);
}
Saída:
*** 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 - Quando (função de cadeia de caracteres)
A mais versátil das expressões compatíveis "quando", a quando() O método permite que você forneça qualquer função Glide com valor booliano como a condição a ser atendida.
| Nome | Tipo | Descrição |
|---|---|---|
| func | Cadeia de caracteres | Uma função Glide que resulta em um resultado de valor booliano quando avaliada. Valores possíveis:
|
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o quando() o método é usado para especificar expressões de comparação mais complexas. Se a expressão for avaliada como verdadeira, a cadeia de caracteres correspondente será retornada.
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)]);
}
Saída:
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(cadeia de caracteres exp1, cadeia de caracteres op, cadeia de caracteres exp2)
Inicia uma condição de caso de comparação.
| Nome | Tipo | Descrição |
|---|---|---|
| exp1 | Cadeia de caracteres | Expressão de comparação à esquerda. Pode ser uma constante, referência a um campo ou outra função Glide. |
| op | Cadeia de caracteres | Operador de comparação, entre aspas. Valores válidos:
|
| exp2 | Cadeia de caracteres | Expressão de comparação à direita. Pode ser uma constante, referência a um campo ou outra função Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor de função para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o WhenCompare() o método é usado para comparar o valor do campo impacto com um número e gerar uma cadeia de caracteres especificada se eles corresponderem.
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)]);
}
Saída:
*** 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(cadeia de caracteres exp1, cadeia de caracteres exp2)
Semelhante a WhenCompare() , WhenEqual() é um método conveniente para verificar igualdade. É equivalente a WhenCompare(leftExpression, .
| Nome | Tipo | Descrição |
|---|---|---|
| exp1 | Cadeia de caracteres | Expressão de comparação à esquerda. Pode ser uma constante, uma referência a um campo ou outra função Glide. |
| exp2 | Cadeia de caracteres | Expressão de comparação à direita. Pode ser uma constante, uma referência a um campo ou outra função Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor de função para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o WhenEqual() o método é usado para comparar o valor do campo impacto com um número e gerar uma cadeia de caracteres especificada se eles corresponderem.
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)]);
}
Saída:
*** 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