CdmQuery - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 19 min. de leitura
  • A API CdmQuery permite que você consulte a CDM árvore de modelos de dados. Ele retorna uma lista de objetos de nó que são campos/colunas específicos na tabela Nó do CDM [sn_cdm_node]. Esses valores são retornados como propriedades no objeto. Cada objeto é um nó no modelo de dados.

    Esta API é fluente, o que significa que a maioria de seus métodos oferece suporte a encadeamento e retorna um objeto CdmQuery. Os métodos nesta API são classificados em tipos diferentes. Você deve especificá-los em uma ordem específica em uma chamada, com base no tipo. Todos os métodos, exceto os métodos de resultado, podem ser encadeados.

    Nota:
    Esta documentação cobre somente o uso da API CdmQuery na consulta de dados de snapshot, portanto, somente os métodos necessários para este processo estão documentados no momento. A consulta de dados de snapshot é necessária ao gravar scripts de política de PaCE para validação de dados e scripts de exportador CDM para exportação de dados.
    Tipos de método:

    Os métodos snapshotId() e query() são obrigatórios. Você deve adicionar métodos de filtro e configuração antes do método query(), mas depois do método snapshotId(). A ordem na qual você adiciona filtros e métodos de configuração não é importante, a menos que sejam conflitantes. Nesse caso, o método relevante mais recente prevalece. Você deve adicionar quaisquer métodos de resultado, como getTree() para buscar o resultado, após o método query().

    Por exemplo:
    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
      .decryptPassword(true)
      .includeFileMetadata()
      .query()
      .getTree(true, false);

    Essa API é executada no namespace sn_cdm e você deve ter as funções sn_cdm.cdm_viewer ou sn_cdm.cdm_secrets para acessar seus vários métodos.

    CdmQuery - CdmQuery()

    Instancia um objeto CdmQuery. Você deve chamar este método antes de chamar qualquer outro método CdmQuery.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum

    Os exemplos de código a seguir mostram como chamar o método CdmQuery para instanciar um objeto CdmQuery no namespace sn_cdm.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
    .decryptPassword(true)
    .query()
    .getTree();

    CdmQuery - decryptPassword (descriptografia booliana)

    Permite que você especifique se os valores descriptografados para o item de dados de configuração criptografado (CDI) e os nós de variável serão retornados nos resultados.

    Um erro será gerado se o usuário não tiver a função sn_cdm.cdm_secrets necessária.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    decrypt Booliano Opcional. Sinalizador que indica se valores descriptografados devem ser retornados para o CDI e nós de variáveis.
    Valores válidos:
    • verdadeiro: retorna valores descriptografados para o CDI e nós de variáveis.
    • falso: retorna valores criptografados para o CDI e nós de variáveis.

    Padrão: falso

    Tabela 3. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como chamar a API CdmQuery() e especificar para retornar valores criptografados para o CDI e os nós de variáveis.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("9f12a80047352150fd6ce977746d4364")
    .decryptPassword(false)
    .query()
    .getTree(true,true);
    
    gs.info(primarySnapshot);

    Retornar resultados:

    {
      "Development_1": {
        "vars": {},
        "services": {
          "vars": {},
          "paymentComponent": {
            "applicationSLA": "24x7",
            "paymentService": {
              "database": {
                "backup": {
                  "dbServer": "db23.paymentx.be"
                },
                "dbIpAddress": "10.20.40.50",
                "dbName": "paymentX_dev2",
                "dbPort": "8050",
                "dbServer": "db22.paymentx.be",
                "dbUserName": "root",
                "dbPassword": "*******"
              }
            }
          }
        }
      }
    }

    O exemplo de código a seguir mostra como chamar a API CdmQuery() e especificar para retornar valores descriptografados para o CDI e os nós de variáveis.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("9f12a80047352150fd6ce977746d4364")
    .decryptPassword(true)
    .query()
    .getTree(true,true);
    
    gs.info(primarySnapshot);

    Retornar resultados:

    {
      "Development_1": {
        "vars": {},
        "services": {
          "vars": {},
          "paymentComponent": {
            "applicationSLA": "24x7",
            "paymentService": {
              "database": {
                "backup": {
                  "dbServer": "db23.paymentx.be"
                },
                "dbIpAddress": "10.20.40.50",
                "dbName": "paymentX_dev2",
                "dbPort": "8050",
                "dbServer": "db22.paymentx.be",
                "dbUserName": "root",
                "dbPassword": "dev1-password"
              }
            }
          }
        }
      }
    }

    CdmQuery - followIncludes(booliano followIncludes)

    Permite que você especifique se os nós vinculados estão totalmente resolvidos, de forma que os nós descendentes de um nó referenciado apareçam em um nó vinculado.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    seguirInclui Booliano Opcional. Sinalizador que indica se os nós vinculados foram totalmente resolvidos.
    Valores válidos:
    • verdadeiro: os nós vinculados são totalmente resolvidos.
    • falso: os nós vinculados não são totalmente resolvidos.

    Padrão: verdadeiro

    Tabela 5. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como retornar dados totalmente resolvidos, followIncludes = verdadeiro.

    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("9f12a80047352150fd6ce977746d4364")
      .followIncludes(true)
      .query()
      .getTree(false, true);

    Exemplo de dados de retorno:

    {
      "sys_id": "62a0a0cc47f12150fd6ce977746d431a",
      "type": "sn_cdm_node_deployable",
      "main_id": "111673",
      "name": "Development_1",
      "node_path": "!K<+!K<0!K<1",
      "effective_path": "!K<+!K<0!K<1",
      "main_id_encoded": "K<1",
      "node_classifier": "/application/deployables/env:Development",
      "status": "valid",
      "level": "2",
      "children": [
        {
          "sys_id": "2aa0a0cc47f12150fd6ce977746d431a",
          "type": "sn_cdm_node_folder",
          "main_id": "111674",
          "name": "vars",
          "node_path": "!K<+!K<0!K<1!K<2",
          "effective_path": "!K<+!K<0!K<1!K<2",
          "main_id_encoded": "K<2",
          "node_classifier": "/application/deployables/env:Development/vars",
          "status": "valid",
          "level": "3",
          "children": [],
          "hasParent": true
        },
        {
          "sys_id": "2ca1600047352150fd6ce977746d4391",
          "type": "sn_cdm_node_linked",
          "main_id": "111693",
          "name": "services",
          "node_path": "!K<+!K<0!K<1!K<G",
          "effective_path": "!K<+!K<0!K<1!K<G",
          "main_id_encoded": "K<G",
          "node_classifier": "/application/deployables/env:Development",
          "status": "valid",
          "level": "3",
          "children": [
            {
              "sys_id": "2bb0e0cc47f12150fd6ce977746d43e2",
              "type": "sn_cdm_node_folder",
              "main_id": "111680",
              "name": "vars",
              "node_path": "!K<+!K</!K<7!K<8",
              "effective_path": "!K<+!K<0!K<1!K<G!K<8",
              "main_id_encoded": "K<8",
              "node_classifier": "/application/collections/vars",
              "status": "valid",
              "level": "3",
              "children": [],
              "hasParent": true
            },
            {
              "sys_id": "ccf1640047352150fd6ce977746d438b",
              "type": "sn_cdm_node_component",
              "main_id": "111697",
              "name": "paymentComponent",
              "node_path": "!K<+!K<0!K<1!K<G!K<K",
              "effective_path": "!K<+!K<0!K<1!K<G!K<K",
              "main_id_encoded": "K<K",
              "node_classifier": "/application/deployables/env:Development",
              "status": "valid",
              "level": "4",
              "children": [
                {
                  "sys_id": "7fd064cc47f12150fd6ce977746d4372",
                  "type": "sn_cdm_node_cdi",
                  "main_id": "111682",
                  "name": "applicationSLA",
                  "node_path": "!K<+!K<,!K<9!K<:",
                  "value": "24x7",
                  "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<:",
                  "main_id_encoded": "K<:",
                  "node_classifier": "/application/components",
                  "status": "valid",
                  "level": "3",
                  "children": [],
                  "hasParent": true
                },
                {
                  "sys_id": "44f1a40047352150fd6ce977746d43dc",
                  "type": "sn_cdm_node_component",
                  "main_id": "111698",
                  "name": "paymentService",
                  "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "main_id_encoded": "K<L",
                  "node_classifier": "/application/deployables/env:Development",
                  "status": "valid",
                  "level": "5",
                  "children": [
                    {
                      "sys_id": "8cf1a40047352150fd6ce977746d43dc",
                      "type": "sn_cdm_node_component",
                      "main_id": "111699",
                      "name": "database",
                      "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "main_id_encoded": "K<M",
                      "node_classifier": "/application/deployables/env:Development",
                      "status": "valid",
                      "level": "6",
                      "children": [
                        {
                          "sys_id": "b3d064cc47f12150fd6ce977746d4374",
                          "type": "sn_cdm_node_component",
                          "main_id": "111685",
                          "name": "backup",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<?",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?",
                          "main_id_encoded": "K<?",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [
                            {
                              "sys_id": "7bd064cc47f12150fd6ce977746d4374",
                              "type": "sn_cdm_node_cdi",
                              "main_id": "111686",
                              "name": "dbServer",
                              "node_path": "!K<+!K<,!K<9!K<;!K<<!K<?!K<@",
                              "value": "db23.paymentx.be",
                              "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?!K<@",
                              "main_id_encoded": "K<@",
                              "node_classifier": "/application/components",
                              "status": "valid",
                              "level": "6",
                              "children": [],
                              "hasParent": true
                            }
                          ],
                          "hasParent": true
                        },
                        {
                          "sys_id": "33d064cc47f12150fd6ce977746d4375",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111687",
                          "name": "dbIpAddress",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<A",
                          "value": "10.20.40.50",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<A",
                          "main_id_encoded": "K<A",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "f7d064cc47f12150fd6ce977746d4375",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111688",
                          "name": "dbName",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<B",
                          "value": "paymentX_dev2",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<B",
                          "main_id_encoded": "K<B",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "77d064cc47f12150fd6ce977746d4376",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111690",
                          "name": "dbPort",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<D",
                          "value": "8050",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<D",
                          "main_id_encoded": "K<D",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "3fd064cc47f12150fd6ce977746d4376",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111691",
                          "name": "dbServer",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<E",
                          "value": "db22.paymentx.be",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<E",
                          "main_id_encoded": "K<E",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "f3d064cc47f12150fd6ce977746d4377",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111692",
                          "name": "dbUserName",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<F",
                          "value": "root",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<F",
                          "main_id_encoded": "K<F",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "c4f1a40047352150fd6ce977746d43dd",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111700",
                          "name": "dbPassword",
                          "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "secure_value": "﷞﷟﷒dac329a2476c6110fd6ce977746d43e1﷬﷔1﷬﷭w8YJ85PO5byT5YNmeG_HwQ==WrNQP39n-PWKFs_VXFSjr3TJsGxS1ESKpyl4PUE=﷮﷯",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "main_id_encoded": "K<N",
                          "node_classifier": "/application/deployables/env:Development",
                          "status": "valid",
                          "level": "7",
                          "masked_value": "*******",
                          "children": [],
                          "hasParent": true
                        }
                      ],
                      "hasParent": true
                    }
                  ],
                  "hasParent": true
                }
              ],
              "hasParent": true
            }
          ],
          "hasParent": true
        }
      ]
    }

    O exemplo de código a seguir mostra como retornar dados que não estão totalmente resolvidos, followIncludes = falso.

    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("9f12a80047352150fd6ce977746d4364")
      .followIncludes(false)
      .query()
      .getTree(false, true);

    Exemplo de dados de retorno:

    {
      "sys_id": "62a0a0cc47f12150fd6ce977746d431a",
      "type": "sn_cdm_node_deployable",
      "main_id": "111673",
      "name": "Development_1",
      "node_path": "!K<+!K<0!K<1",
      "effective_path": "!K<+!K<0!K<1",
      "main_id_encoded": "K<1",
      "node_classifier": "/application/deployables/env:Development",
      "status": "valid",
      "level": "2",
      "children": [
        {
          "sys_id": "2aa0a0cc47f12150fd6ce977746d431a",
          "type": "sn_cdm_node_folder",
          "main_id": "111674",
          "name": "vars",
          "node_path": "!K<+!K<0!K<1!K<2",
          "effective_path": "!K<+!K<0!K<1!K<2",
          "main_id_encoded": "K<2",
          "node_classifier": "/application/deployables/env:Development/vars",
          "status": "valid",
          "level": "3",
          "children": [],
          "hasParent": true
        },
        {
          "sys_id": "2ca1600047352150fd6ce977746d4391",
          "type": "sn_cdm_node_linked",
          "main_id": "111693",
          "name": "services",
          "node_path": "!K<+!K<0!K<1!K<G",
          "effective_path": "!K<+!K<0!K<1!K<G",
          "main_id_encoded": "K<G",
          "node_classifier": "/application/deployables/env:Development",
          "status": "valid",
          "level": "3",
          "children": [
            {
              "sys_id": "ccf1640047352150fd6ce977746d438b",
              "type": "sn_cdm_node_component",
              "main_id": "111697",
              "name": "paymentComponent",
              "node_path": "!K<+!K<0!K<1!K<G!K<K",
              "effective_path": "!K<+!K<0!K<1!K<G!K<K",
              "main_id_encoded": "K<K",
              "node_classifier": "/application/deployables/env:Development",
              "status": "valid",
              "level": "4",
              "children": [
                {
                  "sys_id": "44f1a40047352150fd6ce977746d43dc",
                  "type": "sn_cdm_node_component",
                  "main_id": "111698",
                  "name": "paymentService",
                  "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "main_id_encoded": "K<L",
                  "node_classifier": "/application/deployables/env:Development",
                  "status": "valid",
                  "level": "5",
                  "children": [
                    {
                      "sys_id": "8cf1a40047352150fd6ce977746d43dc",
                      "type": "sn_cdm_node_component",
                      "main_id": "111699",
                      "name": "database",
                      "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "main_id_encoded": "K<M",
                      "node_classifier": "/application/deployables/env:Development",
                      "status": "valid",
                      "level": "6",
                      "children": [
                        {
                          "sys_id": "c4f1a40047352150fd6ce977746d43dd",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111700",
                          "name": "dbPassword",
                          "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "secure_value": "﷞﷟﷒dac329a2476c6110fd6ce977746d43e1﷬﷔1﷬﷭w8YJ85PO5byT5YNmeG_HwQ==WrNQP39n-PWKFs_VXFSjr3TJsGxS1ESKpyl4PUE=﷮﷯",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "main_id_encoded": "K<N",
                          "node_classifier": "/application/deployables/env:Development",
                          "status": "valid",
                          "level": "7",
                          "masked_value": "*******",
                          "children": [],
                          "hasParent": true
                        }
                      ],
                      "hasParent": true
                    }
                  ],
                  "hasParent": true
                }
              ],
              "hasParent": true
            }
          ],
          "hasParent": true
        }
      ]
    }

    CdmQuery - forEach(função função)

    Itera em cada um dos nós de resultado e aplica a função fornecida que aceita um objeto CdmNode.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    função Função Função a ser aplicada ao objeto CdmNode.
    Tabela 7. Retorna
    Tipo Descrição
    Nenhum

    Este exemplo de código mostra como chamar o método forEach().

    CdmQuery.forEach(function (node) {
      gs.info("Node - {0}:{1} ", [node.getValue("name"), node.getValue("value")]);
    });

    CdmQuery - getTree(Boolean SimpleTree, Boolean Prettify)

    Retorna os resultados da consulta CDM especificados.

    Você pode especificar o nível e o formato do conteúdo a ser retornado definindo os sinalizadores associados na chamada. O padrão é retornar uma cadeia de caracteres formatada contendo os metadados do nó e seus nós secundários e em que o nó de entrada é o nó superior.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    árvore simples Booliano Opcional. Sinalizador que indica o nível de conteúdo a ser retornado.
    Valores válidos:
    • verdadeiro: retorna um objeto JSON simplificado de pares de chave-valor hierárquicos, excluindo todos os metadados do nó.
    • falso: retorna um objeto JSON contendo os metadados do nó e todos os nós secundários e especifica onde o nó de entrada é o nó superior.

    Padrão: falso

    embelecer Booliano Opcional. Sinalizador que indica se uma cadeia de caracteres formatada deve ser retornada em vez de um objeto JSON.
    Valores válidos:
    • verdadeiro: retorna o conteúdo em um objeto JSON.
    • falso: retorna o conteúdo como uma cadeia de caracteres formatada. Use esta opção somente na IU e nos exportadores, pois ela adiciona uma nova linha e caracteres de escape à resposta.

    Padrão: falso

    Tabela 9. Retorna
    Tipo Descrição
    CdmQuery Objeto CdmQuery que contém as informações de consulta especificadas.

    O exemplo de código a seguir mostra como chamar o método getTree() usando as configurações padrão. Isso retorna uma cadeia de caracteres formatada contendo os metadados do nó e todos os seus nós secundários.

    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("9f12a80047352150fd6ce977746d4364")
      .query()
      .getTree();
    
    gs.info(JSON.stringify(primarySnapshot));

    Retornar resultados:

    {"sys_id":"62a0a0cc47f12150fd6ce977746d431a","type":"sn_cdm_node_deployable","main_id":"111673","name":"Development_1","node_path":"!K<+!K<0!K<1","effective_path":"!K<+!K<0!K<1","main_id_encoded":"K<1","node_classifier":"/application/deployables/env:Development","status":"valid","level":"2","children":[{"sys_id":"2aa0a0cc47f12150fd6ce977746d431a","type":"sn_cdm_node_folder","main_id":"111674","name":"vars","node_path":"!K<+!K<0!K<1!K<2","effective_path":"!K<+!K<0!K<1!K<2","main_id_encoded":"K<2","node_classifier":"/application/deployables/env:Development/vars","status":"valid","level":"3","children":[],"hasParent":true},{"sys_id":"2ca1600047352150fd6ce977746d4391","type":"sn_cdm_node_linked","main_id":"111693","name":"services","node_path":"!K<+!K<0!K<1!K<G","effective_path":"!K<+!K<0!K<1!K<G","main_id_encoded":"K<G","node_classifier":"/application/deployables/env:Development","status":"valid","level":"3","children":[{"sys_id":"2bb0e0cc47f12150fd6ce977746d43e2","type":"sn_cdm_node_folder","main_id":"111680","name":"vars","node_path":"!K<+!K</!K<7!K<8","effective_path":"!K<+!K<0!K<1!K<G!K<8","main_id_encoded":"K<8","node_classifier":"/application/collections/vars","status":"valid","level":"3","children":[],"hasParent":true},{"sys_id":"ccf1640047352150fd6ce977746d438b","type":"sn_cdm_node_component","main_id":"111697","name":"paymentComponent","node_path":"!K<+!K<0!K<1!K<G!K<K","effective_path":"!K<+!K<0!K<1!K<G!K<K","main_id_encoded":"K<K","node_classifier":"/application/deployables/env:Development","status":"valid","level":"4","children":[{"sys_id":"7fd064cc47f12150fd6ce977746d4372","type":"sn_cdm_node_cdi","main_id":"111682","name":"applicationSLA","node_path":"!K<+!K<,!K<9!K<:","value":"24x7","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<:","main_id_encoded":"K<:","node_classifier":"/application/components","status":"valid","level":"3","children":[],"hasParent":true},{"sys_id":"44f1a40047352150fd6ce977746d43dc","type":"sn_cdm_node_component","main_id":"111698","name":"paymentService","node_path":"!K<+!K<0!K<1!K<G!K<K!K<L","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L","main_id_encoded":"K<L","node_classifier":"/application/deployables/env:Development","status":"valid","level":"5","children":[{"sys_id":"8cf1a40047352150fd6ce977746d43dc","type":"sn_cdm_node_component","main_id":"111699","name":"database","node_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M","main_id_encoded":"K<M","node_classifier":"/application/deployables/env:Development","status":"valid","level":"6","children":[{"sys_id":"b3d064cc47f12150fd6ce977746d4374","type":"sn_cdm_node_component","main_id":"111685","name":"backup","node_path":"!K<+!K<,!K<9!K<;!K<<!K<?","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?","main_id_encoded":"K<?","node_classifier":"/application/components","status":"valid","level":"5","children":[{"sys_id":"7bd064cc47f12150fd6ce977746d4374","type":"sn_cdm_node_cdi","main_id":"111686","name":"dbServer","node_path":"!K<+!K<,!K<9!K<;!K<<!K<?!K<@","value":"db23.paymentx.be","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?!K<@","main_id_encoded":"K<@","node_classifier":"/application/components","status":"valid","level":"6","children":[],"hasParent":true}],"hasParent":true},{"sys_id":"33d064cc47f12150fd6ce977746d4375","type":"sn_cdm_node_cdi","main_id":"111687","name":"dbIpAddress","node_path":"!K<+!K<,!K<9!K<;!K<<!K<A","value":"10.20.40.50","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<A","main_id_encoded":"K<A","node_classifier":"/application/components","status":"valid","level":"5","children":[],"hasParent":true},{"sys_id":"f7d064cc47f12150fd6ce977746d4375","type":"sn_cdm_node_cdi","main_id":"111688","name":"dbName","node_path":"!K<+!K<,!K<9!K<;!K<<!K<B","value":"paymentX_dev2","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<B","main_id_encoded":"K<B","node_classifier":"/application/components","status":"valid","level":"5","children":[],"hasParent":true},{"sys_id":"77d064cc47f12150fd6ce977746d4376","type":"sn_cdm_node_cdi","main_id":"111690","name":"dbPort","node_path":"!K<+!K<,!K<9!K<;!K<<!K<D","value":"8050","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<D","main_id_encoded":"K<D","node_classifier":"/application/components","status":"valid","level":"5","children":[],"hasParent":true},{"sys_id":"3fd064cc47f12150fd6ce977746d4376","type":"sn_cdm_node_cdi","main_id":"111691","name":"dbServer","node_path":"!K<+!K<,!K<9!K<;!K<<!K<E","value":"db22.paymentx.be","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<E","main_id_encoded":"K<E","node_classifier":"/application/components","status":"valid","level":"5","children":[],"hasParent":true},{"sys_id":"f3d064cc47f12150fd6ce977746d4377","type":"sn_cdm_node_cdi","main_id":"111692","name":"dbUserName","node_path":"!K<+!K<,!K<9!K<;!K<<!K<F","value":"root","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<F","main_id_encoded":"K<F","node_classifier":"/application/components","status":"valid","level":"5","children":[],"hasParent":true},{"sys_id":"c4f1a40047352150fd6ce977746d43dd","type":"sn_cdm_node_cdi","main_id":"111700","name":"dbPassword","node_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N","secure_value":"﷞﷟﷒dac329a2476c6110fd6ce977746d43e1﷬﷔1﷬﷭w8YJ85PO5byT5YNmeG_HwQ==WrNQP39n-PWKFs_VXFSjr3TJsGxS1ESKpyl4PUE=﷮﷯","effective_path":"!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N","main_id_encoded":"K<N","node_classifier":"/application/deployables/env:Development","status":"valid","level":"7","masked_value":"*******","children":[],"hasParent":true}],"hasParent":true}],"hasParent":true}],"hasParent":true}],"hasParent":true}]}
    

    O exemplo de código a seguir mostra como chamar o método getTree() para retornar um objeto JSON simplificado de pares de chave-valor hierárquicos.

    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("9f12a80047352150fd6ce977746d4364")
      .query()
      .getTree(true, true);
    
    gs.info(JSON.stringify(primarySnapshot));

    Retornar resultados:

    {
      "Development_1": {
        "vars": {},
        "services": {
          "vars": {},
          "paymentComponent": {
            "applicationSLA": "24x7",
            "paymentService": {
              "database": {
                "backup": {
                  "dbServer": "db23.paymentx.be"
                },
                "dbIpAddress": "10.20.40.50",
                "dbName": "paymentX_dev2",
                "dbPort": "8050",
                "dbServer": "db22.paymentx.be",
                "dbUserName": "root",
                "dbPassword": "*******"
              }
            }
          }
        }
      }
    }

    O exemplo de código a seguir mostra como chamar o método getTree() para retornar um objeto JSON que contém os metadados do nó e todos os seus nós secundários.

    var primarySnapshot = new sn_cdm.CdmQuery()
      .snapshotId("9f12a80047352150fd6ce977746d4364")
      .query()
      .getTree(false, true);
    
    gs.info(JSON.stringify(primarySnapshot));

    Retornar resultados:

    {
      "sys_id": "62a0a0cc47f12150fd6ce977746d431a",
      "type": "sn_cdm_node_deployable",
      "main_id": "111673",
      "name": "Development_1",
      "node_path": "!K<+!K<0!K<1",
      "effective_path": "!K<+!K<0!K<1",
      "main_id_encoded": "K<1",
      "node_classifier": "/application/deployables/env:Development",
      "status": "valid",
      "level": "2",
      "children": [
        {
          "sys_id": "2aa0a0cc47f12150fd6ce977746d431a",
          "type": "sn_cdm_node_folder",
          "main_id": "111674",
          "name": "vars",
          "node_path": "!K<+!K<0!K<1!K<2",
          "effective_path": "!K<+!K<0!K<1!K<2",
          "main_id_encoded": "K<2",
          "node_classifier": "/application/deployables/env:Development/vars",
          "status": "valid",
          "level": "3",
          "children": [],
          "hasParent": true
        },
        {
          "sys_id": "2ca1600047352150fd6ce977746d4391",
          "type": "sn_cdm_node_linked",
          "main_id": "111693",
          "name": "services",
          "node_path": "!K<+!K<0!K<1!K<G",
          "effective_path": "!K<+!K<0!K<1!K<G",
          "main_id_encoded": "K<G",
          "node_classifier": "/application/deployables/env:Development",
          "status": "valid",
          "level": "3",
          "children": [
            {
              "sys_id": "2bb0e0cc47f12150fd6ce977746d43e2",
              "type": "sn_cdm_node_folder",
              "main_id": "111680",
              "name": "vars",
              "node_path": "!K<+!K</!K<7!K<8",
              "effective_path": "!K<+!K<0!K<1!K<G!K<8",
              "main_id_encoded": "K<8",
              "node_classifier": "/application/collections/vars",
              "status": "valid",
              "level": "3",
              "children": [],
              "hasParent": true
            },
            {
              "sys_id": "ccf1640047352150fd6ce977746d438b",
              "type": "sn_cdm_node_component",
              "main_id": "111697",
              "name": "paymentComponent",
              "node_path": "!K<+!K<0!K<1!K<G!K<K",
              "effective_path": "!K<+!K<0!K<1!K<G!K<K",
              "main_id_encoded": "K<K",
              "node_classifier": "/application/deployables/env:Development",
              "status": "valid",
              "level": "4",
              "children": [
                {
                  "sys_id": "7fd064cc47f12150fd6ce977746d4372",
                  "type": "sn_cdm_node_cdi",
                  "main_id": "111682",
                  "name": "applicationSLA",
                  "node_path": "!K<+!K<,!K<9!K<:",
                  "value": "24x7",
                  "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<:",
                  "main_id_encoded": "K<:",
                  "node_classifier": "/application/components",
                  "status": "valid",
                  "level": "3",
                  "children": [],
                  "hasParent": true
                },
                {
                  "sys_id": "44f1a40047352150fd6ce977746d43dc",
                  "type": "sn_cdm_node_component",
                  "main_id": "111698",
                  "name": "paymentService",
                  "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L",
                  "main_id_encoded": "K<L",
                  "node_classifier": "/application/deployables/env:Development",
                  "status": "valid",
                  "level": "5",
                  "children": [
                    {
                      "sys_id": "8cf1a40047352150fd6ce977746d43dc",
                      "type": "sn_cdm_node_component",
                      "main_id": "111699",
                      "name": "database",
                      "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M",
                      "main_id_encoded": "K<M",
                      "node_classifier": "/application/deployables/env:Development",
                      "status": "valid",
                      "level": "6",
                      "children": [
                        {
                          "sys_id": "b3d064cc47f12150fd6ce977746d4374",
                          "type": "sn_cdm_node_component",
                          "main_id": "111685",
                          "name": "backup",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<?",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?",
                          "main_id_encoded": "K<?",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [
                            {
                              "sys_id": "7bd064cc47f12150fd6ce977746d4374",
                              "type": "sn_cdm_node_cdi",
                              "main_id": "111686",
                              "name": "dbServer",
                              "node_path": "!K<+!K<,!K<9!K<;!K<<!K<?!K<@",
                              "value": "db23.paymentx.be",
                              "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<?!K<@",
                              "main_id_encoded": "K<@",
                              "node_classifier": "/application/components",
                              "status": "valid",
                              "level": "6",
                              "children": [],
                              "hasParent": true
                            }
                          ],
                          "hasParent": true
                        },
                        {
                          "sys_id": "33d064cc47f12150fd6ce977746d4375",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111687",
                          "name": "dbIpAddress",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<A",
                          "value": "10.20.40.50",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<A",
                          "main_id_encoded": "K<A",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "f7d064cc47f12150fd6ce977746d4375",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111688",
                          "name": "dbName",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<B",
                          "value": "paymentX_dev2",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<B",
                          "main_id_encoded": "K<B",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "77d064cc47f12150fd6ce977746d4376",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111690",
                          "name": "dbPort",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<D",
                          "value": "8050",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<D",
                          "main_id_encoded": "K<D",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "3fd064cc47f12150fd6ce977746d4376",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111691",
                          "name": "dbServer",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<E",
                          "value": "db22.paymentx.be",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<E",
                          "main_id_encoded": "K<E",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "f3d064cc47f12150fd6ce977746d4377",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111692",
                          "name": "dbUserName",
                          "node_path": "!K<+!K<,!K<9!K<;!K<<!K<F",
                          "value": "root",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<F",
                          "main_id_encoded": "K<F",
                          "node_classifier": "/application/components",
                          "status": "valid",
                          "level": "5",
                          "children": [],
                          "hasParent": true
                        },
                        {
                          "sys_id": "c4f1a40047352150fd6ce977746d43dd",
                          "type": "sn_cdm_node_cdi",
                          "main_id": "111700",
                          "name": "dbPassword",
                          "node_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "secure_value": "﷞﷟﷒dac329a2476c6110fd6ce977746d43e1﷬﷔1﷬﷭w8YJ85PO5byT5YNmeG_HwQ==WrNQP39n-PWKFs_VXFSjr3TJsGxS1ESKpyl4PUE=﷮﷯",
                          "effective_path": "!K<+!K<0!K<1!K<G!K<K!K<L!K<M!K<N",
                          "main_id_encoded": "K<N",
                          "node_classifier": "/application/deployables/env:Development",
                          "status": "valid",
                          "level": "7",
                          "masked_value": "*******",
                          "children": [],
                          "hasParent": true
                        }
                      ],
                      "hasParent": true
                    }
                  ],
                  "hasParent": true
                }
              ],
              "hasParent": true
            }
          ],
          "hasParent": true
        }
      ]
    }

    CdmQuery - getValue(cadeia de caracteres "fieldName")

    Retorna o valor do campo especificado do resultado do nó iterado atual.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome do campo com o registro do snapshot a ser retornado.
    Tabela 11. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como usar o método getValue() para extrair os dados necessários.

    var cdmQuery = new sn_cdm.CdmQuery()
      .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
      .decryptPassword(true)
      .query();  
    
    var output = [];
      while(cdmQuery.next()) {
        var name = cdmQuery.getValue('name');
        var type = cdmQuery.getValue('type');
    
        if (type == 'sg_cdm_node_cdi' || type == 'sg_cdm_node_variable') {
          var value = cdmQuery.getValue('value');
          output.push(gs.getMessage("{0} : {1} [{2}]", [name, value, type]));
        } else {
          output.push(gs.getMessage("{0} [{1}]", [name, type]));
      }
    } 

    Valores de retorno:

    [
      "test_login_service [sg_cdm_node_deployable]",
      "vars [sg_cdm_node_folder]",
      "service_password : service12345 [sg_cdm_node_variable]",
      "login_service [sg_cdm_node_linked]",
      "vars [sg_cdm_node_folder]",
      "core_component [sg_cdm_node_component]",
      "user_name : admin [sg_cdm_node_cdi]",
      "user_password : service12345 [sg_cdm_node_cdi]"
    ]

    CdmQuery - includeFileMetadata()

    Permite que você especifique se as informações de metadados do arquivo devem ser buscadas para os nós do arquivo. Os metadados do arquivo contêm attachment_id, file_name, content_type e checksum.

    Nota:
    Os metadados são retornados somente para árvores não simples. Para obter informações adicionais sobre este tipo de retorno de dados, consulte CdmQuery - getTree(Boolean SimpleTree, Boolean Prettify).
    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como chamar a API CdmQuery() e retornar informações de metadados do arquivo.

    var cdmQuery = new CdmQuery()
    .snapshotId("20c365a2476c6110fd6ce977746d4336")
    .includeFileMetadata()
    .query()
    .getTree(false, true);

    Retorna:

    {
      "sys_id": "62a0a0cc47f12150fd6ce977746d431a",
      "type": "sn_cdm_node_deployable",
      "main_id": "111673",
      "name": "Development_1",
      "node_path": "!K<+!K<0!K<1",
      "effective_path": "!K<+!K<0!K<1",
      "main_id_encoded": "K<1",
      "node_classifier": "/application/deployables/env:Development",
      "status": "valid",
      "level": "2",
      "children": [
        {
          "sys_id": "2aa0a0cc47f12150fd6ce977746d431a",
          "type": "sn_cdm_node_folder",
          "main_id": "111674",
          "name": "vars",
          "node_path": "!K<+!K<0!K<1!K<2",
          "effective_path": "!K<+!K<0!K<1!K<2",
          "main_id_encoded": "K<2",
          "node_classifier": "/application/deployables/env:Development/vars",
          "status": "valid",
          "level": "3",
          "children": [],
          "hasParent": true
        },
        {
          "sys_id": "b83eb65fffdf6110f0ccffffffffff7d",
          "type": "sn_cdm_node_file",
          "main_id": "111675",
          "name": "deploy_config.xml",
          "node_path": "!K<+!K<0!K<1!K<G",
          "value": "file: http://instance.servicenow.com/sys_attachment.do?sys_id=bc3eb65fffdf6110f0ccffffffffff7d",
          "effective_path": "!K<+!K<0!K<1!K<G",
          "main_id_encoded": "V",
          "node_classifier": "/application/deployables/env:Development",
          "status": "valid",
          "level": "3",
          "file_metadata": {
            "attachment_id": "bc3eb65fffdf6110f0ccffffffffff7d",
            "file_name": "deploy_config.xml",
            "content_type": "application/xml",
            "checksum": "UbWkF5HZOQTQ89bFrqyFBg=="
          },
          "children": [],
          "hasParent": true
        }
      ]
    }

    CdmQuery - consulta ()

    Executa a consulta especificada no banco de dados CDM ou no cache com base nas configurações, no nó de entrada e nas configurações de filtro.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 15. Retorna
    Tipo Descrição
    CdmQuery Objeto CdmQuery.

    O exemplo de código a seguir mostra como chamar a API CdmQuery() e especificar o snapshot implantável a ser consultado.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
    .decryptPassword(true)
    .query()
    .getTree();

    Retornar resultados:

    { 
      "_decryptPassword": true,
      "sys_id": "d73d6666c3a27010cc0a259d7640dde7",
      "type": "sg_cdm_node_deployable",
      "main_id": "731",
      "name": "test_login_service",
      "node_path": "!1+!1/!10",
      "effective_path": "!1+!1/!10",
      "main_id_encoded": "10",
      "node_classifier": "/application/deployables/dep:test_login_service", 
      "status": "valid", 
      "children": [
        {
          "_decryptPassword": true,
          "sys_id": "9f3d6666c3a27010cc0a259d7640dde7",
          "type": "sg_cdm_node_folder",
          "main_id": "732",
          "name": "vars",
          "node_path": "!1+!1/!10!11",
          "effective_path": "!1+!1/!10!11",
          "main_id_encoded": "11",
          "node_classifier": "/application/deployables/dep:test_login_service/vars",
          "status": "valid",
          "children": [
            {
              "_decryptPassword": true,
              "sys_id": "49dd2e66c3a27010cc0a259d7640ddf9",
              "type": "sg_cdm_node_variable", 
              "main_id": "741",
              "name": "service_password",
              "node_path": "!1+!1/!10!11!1:",
              "value": "service12345",
              "effective_path": "!1+!1/!10!11!1:",
              "main_id_encoded": "1:",
              "node_classifier": "/application/deployables/dep:test_login_service/vars",
              "status": "valid",
              "children": [],
              "hasParent": true 
            }
          ], 
          "hasParent": true 
        }, 
        {
          "_decryptPassword": true,
          "sys_id": "26bd2e66c3a27010cc0a259d7640dd74",
          "type": "sg_cdm_node_linked",
          "main_id": "740",
          "name": "login_service",
          "node_path": "!1+!1/!10!19",
          "effective_path": "!1+!1/!10!19",
          "main_id_encoded": "19",
          "node_classifier": "/application/deployables/dep:test_login_service",
          "status": "valid",
          "children": [
            {
              "_decryptPassword": true,
              "sys_id": "eeadea66c3a27010cc0a259d7640dd8c",
              "type": "sg_cdm_node_folder",
              "main_id": "738",
              "name": "vars",
              "node_path": "!1+!1.!16!17",
              "effective_path": "!1+!1/!10!19!17",
              "main_id_encoded": "17",
              "node_classifier": "/application/collections/vars",
              "status": "valid",
              "children": [],
              "hasParent": true 
            },
            { 
              "_decryptPassword": true,
              "sys_id": "da1f22e6c3a27010cc0a259d7640dda2",
              "type": "sg_cdm_node_component",
              "main_id": "742",
              "name": "core_component",
              "node_path": "!1+!1/!10!19!1;",
              "effective_path": "!1+!1/!10!19!1;",
              "main_id_encoded": "1;",
              "node_classifier": "/application/deployables/dep:test_login_service",
              "status": "valid",
              "children": [
                { 
                  "_decryptPassword": true,
                  "sys_id": "921f22e6c3a27010cc0a259d7640dda3",
                  "type": "sg_cdm_node_cdi",
                  "main_id": "743",
                  "name": "user_name",
                  "node_path": "!1+!1/!10!19!1;!1<",
                  "value": "admin",
                  "effective_path": "!1+!1/!10!19!1;!1<",
                  "main_id_encoded": "1<",
                  "node_classifier": "/application/deployables/dep:test_login_service",
                  "status": "valid",
                  "children": [],
                  "hasParent": true
                },
                { 
                  "_decryptPassword": true,
                  "sys_id": "5a1f22e6c3a27010cc0a259d7640dda3",
                  "type": "sg_cdm_node_cdi",
                  "main_id": "744",
                  "name": "user_password",
                  "node_path": "!1+!1/!10!19!1;!1?",
                  "value": "service12345",
                  "effective_path": "!1+!1/!10!19!1;!1?",
                  "main_id_encoded": "1?",
                  "node_classifier": "/application/deployables/dep:test_login_service",
                  "status": "valid",
                  "children": [],
                  "hasParent": true
                }
              ],
              "hasParent": true
            }
          ],
          "hasParent": true
        }
      ],
      "hasParent": false
    }

    CdmQuery - snapshotId(cadeia de caracteres snapshotSysID)

    Especifica o nó de entrada. A API CdmQuery limita sua consulta ao nó de entrada e seus nós descendentes. Chamar este método é obrigatório.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    snapshotSysId Cadeia de caracteres Sys_id do snapshot implantável a ser consultado. Localizado na tabela Snapshot do CDM [sn_cdm_snapshot].

    Internamente, ele define o sys_id do changeset e o sys_id do nó implantável.

    Tabela 17. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como chamar a API CdmQuery() e especificar o snapshot implantável a ser consultado.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
    .decryptPassword(true)
    .query()
    .getTree();

    Retornar resultados:

    { 
      "_decryptPassword": true,
      "sys_id": "d73d6666c3a27010cc0a259d7640dde7",
      "type": "sg_cdm_node_deployable",
      "main_id": "731",
      "name": "test_login_service",
      "node_path": "!1+!1/!10",
      "effective_path": "!1+!1/!10",
      "main_id_encoded": "10",
      "node_classifier": "/application/deployables/dep:test_login_service", 
      "status": "valid", 
      "children": [
        {
          "_decryptPassword": true,
          "sys_id": "9f3d6666c3a27010cc0a259d7640dde7",
          "type": "sg_cdm_node_folder",
          "main_id": "732",
          "name": "vars",
          "node_path": "!1+!1/!10!11",
          "effective_path": "!1+!1/!10!11",
          "main_id_encoded": "11",
          "node_classifier": "/application/deployables/dep:test_login_service/vars",
          "status": "valid",
          "children": [
            {
              "_decryptPassword": true,
              "sys_id": "49dd2e66c3a27010cc0a259d7640ddf9",
              "type": "sg_cdm_node_variable", 
              "main_id": "741",
              "name": "service_password",
              "node_path": "!1+!1/!10!11!1:",
              "value": "service12345",
              "effective_path": "!1+!1/!10!11!1:",
              "main_id_encoded": "1:",
              "node_classifier": "/application/deployables/dep:test_login_service/vars",
              "status": "valid",
              "children": [],
              "hasParent": true 
            }
          ], 
          "hasParent": true 
        }, 
        {
          "_decryptPassword": true,
          "sys_id": "26bd2e66c3a27010cc0a259d7640dd74",
          "type": "sg_cdm_node_linked",
          "main_id": "740",
          "name": "login_service",
          "node_path": "!1+!1/!10!19",
          "effective_path": "!1+!1/!10!19",
          "main_id_encoded": "19",
          "node_classifier": "/application/deployables/dep:test_login_service",
          "status": "valid",
          "children": [
            {
              "_decryptPassword": true,
              "sys_id": "eeadea66c3a27010cc0a259d7640dd8c",
              "type": "sg_cdm_node_folder",
              "main_id": "738",
              "name": "vars",
              "node_path": "!1+!1.!16!17",
              "effective_path": "!1+!1/!10!19!17",
              "main_id_encoded": "17",
              "node_classifier": "/application/collections/vars",
              "status": "valid",
              "children": [],
              "hasParent": true 
            },
            { 
              "_decryptPassword": true,
              "sys_id": "da1f22e6c3a27010cc0a259d7640dda2",
              "type": "sg_cdm_node_component",
              "main_id": "742",
              "name": "core_component",
              "node_path": "!1+!1/!10!19!1;",
              "effective_path": "!1+!1/!10!19!1;",
              "main_id_encoded": "1;",
              "node_classifier": "/application/deployables/dep:test_login_service",
              "status": "valid",
              "children": [
                { 
                  "_decryptPassword": true,
                  "sys_id": "921f22e6c3a27010cc0a259d7640dda3",
                  "type": "sg_cdm_node_cdi",
                  "main_id": "743",
                  "name": "user_name",
                  "node_path": "!1+!1/!10!19!1;!1<",
                  "value": "admin",
                  "effective_path": "!1+!1/!10!19!1;!1<",
                  "main_id_encoded": "1<",
                  "node_classifier": "/application/deployables/dep:test_login_service",
                  "status": "valid",
                  "children": [],
                  "hasParent": true
                },
                { 
                  "_decryptPassword": true,
                  "sys_id": "5a1f22e6c3a27010cc0a259d7640dda3",
                  "type": "sg_cdm_node_cdi",
                  "main_id": "744",
                  "name": "user_password",
                  "node_path": "!1+!1/!10!19!1;!1?",
                  "value": "service12345",
                  "effective_path": "!1+!1/!10!19!1;!1?",
                  "main_id_encoded": "1?",
                  "node_classifier": "/application/deployables/dep:test_login_service",
                  "status": "valid",
                  "children": [],
                  "hasParent": true
                }
              ],
              "hasParent": true
            }
          ],
          "hasParent": true
        }
      ],
      "hasParent": false
    }

    CdmQuery - substitutVariable(booliano substituto)

    Permite que você especifique se as referências de variáveis devem ser substituídas nos nós de item de dados de configuração (CDI) pelo valor do nó de variável referenciado.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    substituto Booliano Opcional. Sinalizador que indica se as referências de variáveis devem ser substituídas em nós de CDI pelo valor do nó de variável referenciado.
    Valores válidos:
    • verdadeiro: substitua as referências de variáveis em nós CDI pelo valor do nó de variável referenciado.
    • falso: não substitua referências de variáveis em nós CDI pelo valor do nó de variável referenciado.

    Padrão: verdadeiro

    Tabela 19. Retorna
    Tipo Descrição
    Nenhum

    Os exemplos de código a seguir mostram como desativar a substituição de referências de variáveis em nós de CDI.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("20c365a2476c6110fd6ce977746d4336")
    .substituteVariable(false)
    .query()
    .getTree(true, true);
    
    gs.info(primarySnapshot);

    Exemplos de resultados de retorno:

    {
      "paymentService-V1.1": {
        "featureToggles": {
          "paymentRefund": "enabled",
          "myPreferredPaymentMethods": "enabled",
          "invoicePrinting": "enabled",
          "payOnDelivery": "disabled",
          "payByVoucher": "enabled"
        },
        "vars": {
          "paymentService": {
            "database": {
              "dbName": "paymentX_dev2",
              "dbUserName": "root",
              "dbPassword": "admin123",
              "dbServer": "db22.paymentx.be",
              "dbPort": "8050",
              "dbIpAddress": "10.20.40.50",
              "backup": {
                "dbServer": "db23.paymentx.be"
              }
            }
          },
          "applicationSLA": "24x7"
        },
        "settings": {
          "merchantId": "10334",
          "paymentMethods": "1,3,5,6",
          "allowed.billing.countries": "74,76,88,136,139,176,197",
          "creditcards.cacf.type.ids": "43,44,45,46,48,49,50",
          "creditcards.oney.type.ids": "33,34,35",
          "included.availabilityids": "999",
          "included.warrantiestypeids.cacf": "19002,19005,19006,19009,19010,19011,19014,19016",
          "dbIPAddress": "@@paymentService/database/dbIpAddress@@",
          "dbPort": "@@paymentService/database/dbPort@@",
          "dbConnectionString": "@@paymentService/database/dbUserName@@:@@paymentService/database/dbPassword@@ @@paymentService/database/dbServer@@:@@paymentService/database/dbPort@@ @@paymentService/database/dbName@@",
          "dbConnectionStringBackup": "@@paymentService/database/dbUserName@@:@@paymentService/database/dbPassword@@ @@paymentService/database/backup/dbServer@@ @@paymentService/database/dbName@@",
          "paypal": "enabled",
          "applePay": "disabled",
          "ogone": "enabled"
        }
      }
    }

    Os exemplos de código a seguir mostram como ativar a substituição de referências de variáveis em nós CDI e os associados retornam resultados para o mesmo registro.

    var primarySnapshot = new sn_cdm.CdmQuery()
    .snapshotId("20c365a2476c6110fd6ce977746d4336")
    .substituteVariable(true)
    .query()
    .getTree(false, true);
    
    gs.info(primarySnapshot);

    Exemplos de resultados de retorno:

    {
      "paymentService-V1.1": {
        "featureToggles": {
          "paymentRefund": "enabled",
          "myPreferredPaymentMethods": "enabled",
          "invoicePrinting": "enabled",
          "payOnDelivery": "disabled",
          "payByVoucher": "enabled"
        },
        "vars": {
          "paymentService": {
            "database": {
              "dbName": "paymentX_dev2",
              "dbUserName": "root",
              "dbPassword": "admin123",
              "dbServer": "db22.paymentx.be",
              "dbPort": "8050",
              "dbIpAddress": "10.20.40.50",
              "backup": {
                "dbServer": "db23.paymentx.be"
              }
            }
          },
          "applicationSLA": "24x7"
        },
        "settings": {
          "merchantId": "10334",
          "paymentMethods": "1,3,5,6",
          "allowed.billing.countries": "74,76,88,136,139,176,197",
          "creditcards.cacf.type.ids": "43,44,45,46,48,49,50",
          "creditcards.oney.type.ids": "33,34,35",
          "included.availabilityids": "999",
          "included.warrantiestypeids.cacf": "19002,19005,19006,19009,19010,19011,19014,19016",
          "dbIPAddress": "10.20.40.50",
          "dbPort": "8050",
          "dbConnectionString": "root:admin123 db22.paymentx.be:8050 paymentX_dev2",
          "dbConnectionStringBackup": "root:admin123 db23.paymentx.be paymentX_dev2",
          "paypal": "enabled",
          "applePay": "disabled",
          "ogone": "enabled"
        }
      }
    }

    CdmQuery - next()

    Itera para o próximo resultado de nó e o retorna se ele existir.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 21. Retorna
    Tipo Descrição
    CdmQuery Se disponível, o objeto CdmQuery do próximo nó.

    Se não houver nós adicionais disponíveis, ele retornará um valor nulo ou indefinido.

    O exemplo de código a seguir mostra como o método next() deve iterar por meio do nó disponível.

    var cdmQuery = new sn_cdm.CdmQuery()
      .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
      .decryptPassword(true)
      .query(); 
    
    var output = [];
    while(cdmQuery.next()) {
      var name = cdmQuery.getValue('name');
      var type = cdmQuery.getValue('type');
        if (type == 'sg_cdm_node_cdi' || type == 'sg_cdm_node_variable') {
          var value = cdmQuery.getValue('value');
          output.push(gs.getMessage("{0} : {1} [{2}]", [name, value, type]));
      } else {
        output.push(gs.getMessage("{0} [{1}]", [name, type]));
      }	 
    } 

    Retornar resultados:

    [
      "test_login_service [sg_cdm_node_deployable]",
      "vars [sg_cdm_node_folder]",
      "service_password : service12345 [sg_cdm_node_variable]",
      "login_service [sg_cdm_node_linked]",
      "vars [sg_cdm_node_folder]",
      "core_component [sg_cdm_node_component]",
      "user_name : username [sg_cdm_node_cdi]",
      "user_password : service12345 [sg_cdm_node_cdi]" 
    ]

    CdmQuery - useCache (booliano useCache)

    Permite que você especifique se os dados devem ser recuperados do cache, se houver, em vez de consultar o banco de dados.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    usarCache Booliano Opcional. Sinalizador que indica se os dados devem ser recuperados do cache, se houver, em vez de consultar o banco de dados.
    Valores válidos:
    • verdadeiro: recupera dados do cache.
    • falso: consulte o banco de dados para recuperar os dados.

    Padrão: verdadeiro

    Tabela 23. Retorna
    Tipo Descrição
    Nenhum

    Os exemplos de código a seguir mostram como desativar o usando o cache para obter dados.

    var cdmQuery = new sn_cdm.CdmQuery()
      .snapshotId("1a2fe2e6c3a27010cc0a259d7640dd59")
      .decryptPassword(true)
      .useCache(false)
      .query();