GlideDBFunctionCaseBuilder - Global
A API GlideDBCaseStatementBuilder permite criar instruções SQL CASE e retornar valores com base em uma série de condições.
Você pode usar esta API como parte da definição da API GlideElement - Global ou ao consultar uma tabela. Para criar uma instrução CASE, comece instanciando o objeto GlideDBFunctionCaseBuilder usando seu construtor, GlideDBFunctionCaseBuilder(). Em seguida, defina um ou mais casos usando uma série de chamadas " when()" e " then() " seguidas por uma única chamada "caso contrário" (opcional). Por fim, chame o método build() 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 do 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 CASE final.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | A declaração de 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 de impacto, ele gerará uma de 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 quando e então, a chamada de outro modo () permite que você especifique um valor a ser gerado se nenhuma das expressões quando 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 do Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor fluente 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 - então (cadeia de caracteres exp)
Seguindo qualquer método quando(), então() permite que você especifique um valor a ser gerado se a expressão quando() for 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 do Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor fluente para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, as expressões " then() " mostram como você pode gerar não apenas cadeias de caracteres, mas também os resultados de outras funções do glide, como o 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 "when" compatíveis, o métodowhen() permite que você forneça qualquer função Glide com valor booliano como a condição a ser atendida.
| Nome | Tipo | Descrição |
|---|---|---|
| função | Cadeia de caracteres | Uma função do 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 método quando() é 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 do 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 do Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor de funções para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o métodowhenCompare() é usado para comparar o valor do campo de 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 quandoCompare(), quandoEqual() é um método conveniente para verificar a igualdade. É equivalente awhenCompare(leftExpression, '=', rightExpression).
| 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 do 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 do Glide. |
| Tipo | Descrição |
|---|---|
| GlideDBFunctionCaseBuilder | O objeto do construtor de funções para continuar criando a declaração. |
O exemplo a seguir mostra como definir e criar uma declaração de caso simples. Nesse caso, o métodowhenEqual() é usado para comparar o valor do campo de 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