CdmQuery - Inclus dans le périmètre

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 19 minutes de lecture
  • L’API CdmQuery vous permet d’interroger l’arborescence CDM du modèle de données. Elle renvoie une liste d’objets de nœud qui sont des champs/colonnes spécifiques dans la table Nœud [sn_cdm_node]. Ces valeurs sont renvoyées en tant que propriétés dans l’objet. Chaque objet est un nœud dans le modèle de données.

    Cette API est fluide, ce qui signifie que la plupart de ses méthodes prennent en charge le chaînage et renvoient un objet CdmQuery. Les méthodes de cette API sont classées en différents types. Vous devez les spécifier dans un ordre particulier au sein d’un appel, en fonction de leur type. Toutes les méthodes, à l’exception des méthodes de résultat, peuvent être chaînées.

    Remarque :
    Cette documentation couvre uniquement l’utilisation de l’API CdmQuery dans l’interrogation des données d’instantanés, par conséquent, seules les méthodes nécessaires à ce processus sont actuellement documentées. L’interrogation des données d’instantané est nécessaire lors de l’écriture de scripts de politique PaCE pour la validation des données et CDM de scripts d’exportateur pour l’exportation des données.
    Types de méthodes :

    Les méthodes snapshotId() et query() sont obligatoires. Vous devez ajouter des méthodes de filtre et de définition avant la méthode query(), mais après la méthode snapshotId(). L’ordre dans lequel vous ajoutez les méthodes de filtre et de configuration n’a pas d’importance, sauf s’ils sont contradictoires, auquel cas la dernière méthode pertinente prévaut. Vous devez ajouter toutes les méthodes de résultat, telles que getTree() pour récupérer le résultat, après la méthode query().

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

    Cette API s’exécute dans l’espace de noms sn_cdm et vous devez disposer des rôles sn_cdm.cdm_viewer ou sn_cdm.cdm_secrets pour accéder à ses différentes méthodes.

    CdmQuery : CdmQuery()

    Instancie un objet CdmQuery. Vous devez appeler cette méthode avant d’appeler toute autre méthode CdmQuery .

    Tableau 1. Paramètres
    Nom Type Description
    Néant

    Les exemples de code suivants montrent comment appeler la méthode CdmQuery pour instancier un objet CdmQuery dans l’espace de noms sn_cdm.

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

    CdmQuery : decryptPassword(déchiffrement booléen)

    Permet de spécifier si les valeurs déchiffrées pour les éléments de données de configuration (CDI) chiffrés et les nœuds de variables sont renvoyées dans les résultats.

    Une erreur est générée si l’utilisateur ne possède pas le rôle sn_cdm.cdm_secrets requis.

    Tableau 2. Paramètres
    Nom Type Description
    Décrypter Booléen Facultatif. Marqueur indiquant si les valeurs déchiffrées doivent être renvoyées pour le CDI et les nœuds de variables.
    Valeurs valides :
    • true : renvoie les valeurs déchiffrées pour le CDI et les nœuds de variables.
    • false : renvoie les valeurs chiffrées pour le CDI et les nœuds de variables.

    Valeur par défaut : false

    Tableau 3. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler l’API CdmQuery() et spécifier pour renvoyer des valeurs chiffrées pour le CDI et les nœuds de variables.

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

    Résultats renvoyés :

    {
      "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": "*******"
              }
            }
          }
        }
      }
    }

    L’exemple de code suivant montre comment appeler l’API CdmQuery() et spécifier pour renvoyer des valeurs déchiffrées pour le CDI et les nœuds de variables.

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

    Résultats renvoyés :

    {
      "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(booléen followIncludes)

    Permet de spécifier si les nœuds liés sont entièrement résolus, de sorte que les nœuds descendants d’un nœud référencé apparaissent sous un nœud lié.

    Tableau 4. Paramètres
    Nom Type Description
    followIncludes (Comprend ce) Booléen Facultatif. Marqueur indiquant si les nœuds liés sont entièrement résolus.
    Valeurs valides :
    • true : les nœuds liés sont entièrement résolus.
    • false : les nœuds liés ne sont pas entièrement résolus.

    Valeur par défaut : true

    Tableau 5. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment renvoyer des données entièrement résolues, followIncludes = vrai.

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

    Exemples de données de retour :

    {
      "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
        }
      ]
    }

    L’exemple de code suivant montre comment renvoyer des données qui ne sont pas entièrement résolues, followIncludes = false.

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

    Exemples de données de retour :

    {
      "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(fonction de fonction)

    Parcours d’itération à travers chacun des nœuds de résultat et application la fonction fournie qui accepte un objet CdmNode.

    Tableau 6. Paramètres
    Nom Type Description
    function Fonction Fonction à appliquer à l’objet CdmNode.
    Tableau 7. Renvoie
    Type Description
    Néant

    Cet exemple de code montre comment appeler la méthode forEach().

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

    CdmQuery - getTree(Boolean simpleTree, Boolean prettify)

    Renvoie les résultats de la requête spécifiée CDM .

    Vous pouvez spécifier le niveau et le format du contenu à renvoyer en définissant les marqueurs associés dans l’appel. La valeur par défaut consiste à renvoyer une chaîne formatée contenant les métadonnées du nœud et ses nœuds enfants, et où le nœud d’entrée est le nœud supérieur.

    Tableau 8. Paramètres
    Nom Type Description
    Arbre simple Booléen Facultatif. Marqueur indiquant le niveau de contenu à renvoyer.
    Valeurs valides :
    • true : renvoie un objet JSON simplifié de paires clé-valeur hiérarchiques, à l’exclusion de toutes les métadonnées de nœud.
    • false : renvoie un objet JSON contenant les métadonnées du nœud et tous ses nœuds enfants, et spécifie où le nœud d’entrée est le nœud supérieur.

    Valeur par défaut : false

    Embellir Booléen Facultatif. Marqueur indiquant si une chaîne formatée doit être renvoyée au lieu d’un objet JSON.
    Valeurs valides :
    • true : renvoie le contenu dans un objet JSON.
    • false : renvoie le contenu sous forme de chaîne formatée. Utilisez uniquement cette option dans l’interface utilisateur et les exportateurs, car elle ajoute des caractères de nouvelle ligne et d’échappement à la réponse.

    Valeur par défaut : false

    Tableau 9. Renvoie
    Type Description
    CdmQuery (en anglais seulement) Objet CdmQuery contenant les informations de requête spécifiées.

    L’exemple de code suivant montre comment appeler la méthode getTree() à l’aide des paramètres par défaut. Cela renvoie une chaîne formatée contenant les métadonnées du nœud et tous ses nœuds enfants.

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

    Résultats renvoyés :

    {"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}]}
    

    L’exemple de code suivant montre comment appeler la méthode getTree() pour renvoyer un objet JSON simplifié de paires clé-valeur hiérarchiques.

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

    Résultats renvoyés :

    {
      "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": "*******"
              }
            }
          }
        }
      }
    }

    L’exemple de code suivant montre comment appeler la méthode getTree() pour renvoyer un objet JSON contenant les métadonnées du nœud et tous ses nœuds enfants.

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

    Résultats renvoyés :

    {
      "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(String fieldName)

    Renvoie la valeur du champ spécifié du résultat du nœud itéré actuel.

    Tableau 10. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom du champ avec l’enregistrement d’instantané à renvoyer.
    Tableau 11. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment utiliser la méthode getValue() pour extraire les données requises.

    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]));
      }
    } 

    Valeurs de retour :

    [
      "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()

    Vous permet de spécifier s’il faut extraire les informations de métadonnées de fichier pour les nœuds de fichier. Les métadonnées du fichier contiennent attachment_id, file_name, content_type et somme de contrôle.

    Remarque :
    Les métadonnées ne sont renvoyées que pour les arborescences non simples. Pour plus d’informations sur ce type de retour de données, reportez-vous à la section CdmQuery - getTree(Boolean simpleTree, Boolean prettify).
    Tableau 12. Paramètres
    Nom Type Description
    Aucun
    Tableau 13. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler l’API CdmQuery() et renvoyer les informations de métadonnées d’un fichier.

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

    Retourne:

    {
      "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 : query()

    Exécute la requête spécifiée par rapport à la CDM base de données ou au cache en fonction des paramètres, du nœud d’entrée et des paramètres de filtre.

    Tableau 14. Paramètres
    Nom Type Description
    Aucun
    Tableau 15. Renvoie
    Type Description
    CdmQuery (en anglais seulement) Objet CdmQuery.

    L’exemple de code suivant montre comment appeler l’API CdmQuery() et spécifier l’instantané déployable à interroger.

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

    Résultats renvoyés :

    { 
      "_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(String snapshotSysID)

    Spécifie le nœud d’entrée. L’API CdmQuery limite sa requête au nœud d’entrée et à ses nœuds descendants. L’appel de cette méthode est obligatoire.

    Tableau 16. Paramètres
    Nom Type Description
    snapshotSysId (en anglais) Chaîne Sys_id de l’instantané déployable à interroger. Situé dans la table Instantané CDM [sn_cdm_snapshot].

    En interne, il définit la sys_id de l’ensemble de changements et l’sys_id du nœud déployable.

    Tableau 17. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler l’API CdmQuery() et spécifier l’instantané déployable à interroger.

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

    Résultats renvoyés :

    { 
      "_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 - substituteVariable(substitut booléen)

    Permet de spécifier s’il faut remplacer les références de variable dans les nœuds d’éléments de données de configuration (CDI) par la valeur du nœud de variable référencé.

    Tableau 18. Paramètres
    Nom Type Description
    Substitut Booléen Facultatif. Marqueur indiquant si les références de variable dans les nœuds CDI doivent être remplacées par la valeur du nœud de variable référencé.
    Valeurs valides :
    • true : remplace les références de variable dans les nœuds CDI par la valeur du nœud de variable référencé.
    • false : ne remplacez pas les références de variable dans les noeuds CDI par la valeur du noeud de variable référencé.

    Valeur par défaut : true

    Tableau 19. Renvoie
    Type Description
    Néant

    Les exemples de code suivants montrent comment désactiver la substitution de références de variables dans les nœuds CDI.

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

    Exemples de résultats de retour :

    {
      "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"
        }
      }
    }

    Les exemples de code suivants montrent comment activer la substitution de références de variables dans les nœuds CDI et les résultats de retour associés pour le même enregistrement.

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

    Exemples de résultats de retour :

    {
      "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()

    Itère jusqu’au résultat de nœud suivant et le renvoie s’il existe.

    Tableau 20. Paramètres
    Nom Type Description
    Aucun
    Tableau 21. Renvoie
    Type Description
    CdmQuery (en anglais seulement) S’il est disponible, l’objet CdmQuery du nœud suivant.

    Si aucun nœud supplémentaire n’est disponible, il renvoie la valeur null ou non définie.

    L’exemple de code suivant montre comment la méthode next() doit itérer à travers le nœud disponible.

    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]));
      }	 
    } 

    Résultats renvoyés :

    [
      "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(Boolean useCache)

    Vous permet de spécifier s’il faut récupérer les données du cache, le cas échéant, au lieu d’interroger la base de données.

    Tableau 22. Paramètres
    Nom Type Description
    useCache (en anglais) Booléen Facultatif. Marqueur indiquant s’il faut récupérer les données du cache, le cas échéant, au lieu d’interroger la base de données.
    Valeurs valides :
    • true : récupère les données du cache.
    • false : interroger la base de données pour récupérer les données.

    Valeur par défaut : true

    Tableau 23. Renvoie
    Type Description
    Néant

    Les exemples de code suivants montrent comment désactiver l’utilisation du cache pour obtenir des données.

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