---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideDBFunctionCaseBuilder - Global

# GlideDBFunctionCaseBuilder - Global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 7 min. de leitura

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](https://servicenow-prod.fluidtopics.net/owvT3dLZhW8ySmhvNQanDA#c_GlideElementAPI "A API GlideElement fornece vários métodos de script convenientes para lidar com campos e seus valores. Os métodosGlideElement estão disponíveis para os campos do registro do Glide atual.") 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() {#ariaid-title2}

Instancia um objeto GlideDBFunctionCaseBuilder.
{#GlideDBFCB_O__table_zxm_3td_svb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum(a) |   |   |
[Tabela 1. Parâmetros]

{#GlideDBFCB_O__table_zxm_3td_svb}  
Este exemplo instancia um objeto GlideDBFunctionCaseBuilder.

    var caseBuilder = new GlideDBFunctionCaseBuilder();

## GlideDBFunctionCaseBuilder - build() {#ariaid-title3}

Conclui a lista de condições e cria a declaração CASE final.
{#GlideDBFCB-build__table_y1r_4ch_jbb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 2. Parâmetros]

{#GlideDBFCB-build__table_y1r_4ch_jbb} {#GlideDBFCB-build__table_z1r_4ch_jbb__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | A declaração de caso concluída. |
[Tabela 3. Retorna]

{#GlideDBFCB-build__table_z1r_4ch_jbb}  
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) {#ariaid-title4}

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.
{#GDBFCB-otherwise_exp__table_nd4_ngf_xwb__entry__3}

| 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. |
[Tabela 4. Parâmetros]

{#GDBFCB-otherwise_exp__table_nd4_ngf_xwb} {#GDBFCB-otherwise_exp__table_od4_ngf_xwb__entry__2}

| Tipo | Descrição |
|-|-|
| GlideDBFunctionCaseBuilder | O objeto do construtor fluente para continuar criando a declaração. |
[Tabela 5. Retorna]

{#GDBFCB-otherwise_exp__table_od4_ngf_xwb}  
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) {#ariaid-title5}

Seguindo qualquer método quando(), então() permite que você especifique um valor a ser gerado se a expressão quando() for atendida.
{#GDBFCB-then_exp__table_xmq_42f_xwb__entry__3}

| 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. |
[Tabela 6. Parâmetros]

{#GDBFCB-then_exp__table_xmq_42f_xwb} {#GDBFCB-then_exp__table_ymq_42f_xwb__entry__2}

| Tipo | Descrição |
|-|-|
| GlideDBFunctionCaseBuilder | O objeto do construtor fluente para continuar criando a declaração. |
[Tabela 7. Retorna]

{#GDBFCB-then_exp__table_ymq_42f_xwb}  
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) {#ariaid-title6}

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.
{#GDBFCB-whenFunc__table_dmg_sy2_xwb__entry__3}

| 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: * glidefunction: comparar * glidefunction:e * glidefunction:ou {#GDBFCB-whenFunc__ul_zc1_zy2_xwb} |
[Tabela 8. Parâmetros]

{#GDBFCB-whenFunc__table_dmg_sy2_xwb} {#GDBFCB-whenFunc__table_emg_sy2_xwb__entry__2}

| Tipo | Descrição |
|-|-|
| glideDBFunctionCaseBuilder | O objeto para continuar criando a declaração. |
[Tabela 9. Retorna]

{#GDBFCB-whenFunc__table_emg_sy2_xwb}  
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) {#ariaid-title7}

Inicia uma condição de caso de comparação.
{#GlideDBFCB-whenCompare_S_S_S__table_jj1_2q2_xwb__entry__3}

| 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: * "'='" * "'\<'" * "'\>'" * "'\<='" * "'\>='" {#GlideDBFCB-whenCompare_S_S_S__ul_gpp_br2_xwb} |
| 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. |
[Tabela 10. Parâmetros]

{#GlideDBFCB-whenCompare_S_S_S__table_jj1_2q2_xwb} {#GlideDBFCB-whenCompare_S_S_S__table_kj1_2q2_xwb__entry__2}

| Tipo | Descrição |
|-|-|
| GlideDBFunctionCaseBuilder | O objeto do construtor de funções para continuar criando a declaração. |
[Tabela 11. Retorna]

{#GlideDBFCB-whenCompare_S_S_S__table_kj1_2q2_xwb}  
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) {#ariaid-title8}

Semelhante a quandoCompare(), quandoEqual() é um método conveniente para verificar a igualdade. É equivalente awhenCompare(leftExpression, '=', rightExpression).
{#GDBCFB-whenEqual__table_hcb_2w2_xwb__entry__3}

| 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. |
[Tabela 12. Parâmetros]

{#GDBCFB-whenEqual__table_hcb_2w2_xwb} {#GDBCFB-whenEqual__table_icb_2w2_xwb__entry__2}

| Tipo | Descrição |
|-|-|
| GlideDBFunctionCaseBuilder | O objeto do construtor de funções para continuar criando a declaração. |
[Tabela 13. Retorna]

{#GDBCFB-whenEqual__table_icb_2w2_xwb}  
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


