CdmQuery - Inclus dans le périmètre
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.
- méthode d’entrée : cette méthode spécifie le nœud d’entrée. CdmQuery limite sa requête au nœud d’entrée et à ses nœuds descendants. La spécification du nœud d’entrée est obligatoire.
- méthode de requête : cette méthode exécute la requête spécifiée.
- méthodes de résultat : ces méthodes renvoient un ensemble spécifique de données de résultats.
- méthodes de définition : Ces méthodes modifient le comportement de CdmQuery().
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().
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 .
| 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.
| 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 :
Valeur par défaut : false |
| 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é.
| Nom | Type | Description |
|---|---|---|
| followIncludes (Comprend ce) | Booléen | Facultatif. Marqueur indiquant si les nœuds liés sont entièrement résolus. Valeurs valides :
Valeur par défaut : true |
| 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": "dac329a2476c6110fd6ce977746d43e11w8YJ85PO5byT5YNmeG_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": "dac329a2476c6110fd6ce977746d43e11w8YJ85PO5byT5YNmeG_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.
| Nom | Type | Description |
|---|---|---|
| function | Fonction | Fonction à appliquer à l’objet CdmNode. |
| 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.
| Nom | Type | Description |
|---|---|---|
| Arbre simple | Booléen | Facultatif. Marqueur indiquant le niveau de contenu à renvoyer. Valeurs valides :
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 :
Valeur par défaut : false |
| 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":"dac329a2476c6110fd6ce977746d43e11w8YJ85PO5byT5YNmeG_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": "dac329a2476c6110fd6ce977746d43e11w8YJ85PO5byT5YNmeG_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.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ avec l’enregistrement d’instantané à renvoyer. |
| 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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.
| 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. |
| 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é.
| 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 :
Valeur par défaut : true |
| 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.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| 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.
| 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 :
Valeur par défaut : true |
| 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();