TransformerDefinition - Inclus, global
L’API TransformerDefinition fournit des méthodes pour instancier et gérer l’objet TransformerDefinition, qui associe une liste de règles de transformation et un chemin d’enregistrement.
Cette API fonctionne avec les API Transformer et TransformerRuleList . Ensemble, ces API transforment les nœuds XML ou toute entité d’un document JSON structuré en une sortie de paires nom-valeur. Entités JSON prises en charge incluant des objets et des éléments dans un tableau, tels que des chaînes, des nombres et d’autres tableaux.
L’API TransformerRuleList vous permet de créer des listes de règles de transformation qui définissent les données du document source à inclure dans la sortie et la manière de transformer les données source.
L’API TransformerDefinition associe une liste de règles de transformation à un chemin d’enregistrement JSON/XML pour définir des objets de définition de transformation réutilisables. Vous pouvez utiliser un objet de définition de transformation pour transformer un ou plusieurs documents source.
En outre, cet objet fournit des méthodes qui vous permettent d’obtenir le chemin d’accès de l’enregistrement de l’objet TransformerDefinition. Il peut également valider si une valeur TransformerRuleList valide est associée à la définition.
L’API Transformer effectue la transformation des données réelle, une entité de données à la fois, à l’aide de la liste des règles de transformation spécifiée pour créer les données de sortie souhaitées.
Vous pouvez utiliser la classe TransformerDefinition dans les scripts serveur inclus dans le périmètre et dans les scripts serveur globaux. Lors de l’utilisation de cette classe, utilisez l’identificateur d’espace de noms sn_tfrm. En outre, avant que cette API ne soit disponible dans une instance, vous devez activer le module d’extension Transformation Service (com.glide.transform).
TransformerDefinition : TransformerDefinition(Object transformerRuleList, String, recordPath)
Instancie un objet TransformerDefinition.
| Nom | Type | Description |
|---|---|---|
| transformerRuleList | Objet | TransformerRuleList à associer à cette définition de transformateur. |
| recordPath (en anglais seulement) | Chaîne | Facultatif. Chemin d’accès (JSONPath pour JSON, XPath pour XML) qui identifie le conteneur (parent) des nœuds à analyser en tant qu’enregistrements dans le document source. Pour les documents JSON, ces nœuds peuvent être n’importe quel objet, tableau ou primitive JSON (chaîne, nombre, booléen). Pour les documents XML, ces nœuds sont les éléments enfants du conteneur. Si recordPath n’est pas spécifié, l’ensemble du document est déduit comme un enregistrement unique. Pour les documents JSON, si le nœud supérieur est un tableau et recordPath qu’il n’est pas spécifié, le tableau supérieur est le conteneur de l’enregistrement et chacune de ses entrées est un enregistrement. |
var stockAPI = new sn_ws.RESTMessageV2('Stock Details', 'Default GET');
var response = stockAPI.execute();
var responseBody = response.getBody();
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.addSymbol('ticker', 'quote.symbol')
.addSymbol('change_percentage', 'quote.change_change')
.thenMultiply('100')
.thenRoundDown('0')
.addSymbol('close_price', 'quote.close')
.thenAdaptCurrency('USD', false)
.addSymbol('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close');
var path = '$.*'; // Transform all objects in the JSON document
var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath);
var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody);
var results = [];
while (transformer.transform()) {
results.push(transformer.getRow());
}
TransformerDefinition : TransformerDefinition(String transformerDefinitionSysId)
Instancie un objet TransformerDefinition à l’aide d’une définition de transformateur existante.
| Nom | Type | Description |
|---|---|---|
| transformerDefinitionSysId | Chaîne | Sys_id d’une définition de transformateur. Situé dans la table Transformateur d’enregistrement [sys_record_transformer]. |
Cet exemple instancie un objet TransformerDefinition en fonction de la sys_id fournie.
var transformerDefinition = new sn_tfrm.TransformerDefinition("7208b59743542110d4dc2c78c9b8f2e2");
TransformerDefinition : recordPath()
Si défini lors de l’instanciation de l’objet TransformerDefinition, il renvoie le chemin d’accès de l’enregistrement pour le fichier de données source associé à l’objet TransformerDefinition.
Un chemin d’accès d’enregistrement (JSONPath pour JSON, XPath pour XML) identifie le conteneur (parent) des nœuds à analyser en tant qu’enregistrements dans le document source.
Pour les documents JSON, ces nœuds peuvent être n’importe quel objet, tableau ou primitive JSON (chaîne, nombre, booléen). Pour les documents XML, ces nœuds sont les éléments enfants du conteneur.
Si recordPath n’est pas spécifié, l’ensemble du document est déduit comme un enregistrement unique. Pour les documents JSON, si le nœud supérieur est un tableau et recordPath qu’il n’est pas spécifié, le tableau supérieur est le conteneur de l’enregistrement et chacune de ses entrées est un enregistrement.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | S’il est défini, il s’agit du chemin d’enregistrement associé à la définition du transformateur. S’il n’est pas défini, renvoie null. |
var path = '$.records';
var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath);
var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody);
.
.
.
var recordPath = transformerDefinition.recordfPath();
var results = [];
while (transformer.transform()) {
results.push(transformer.getRow());
}
TransformerDefinition - validate()
Valide si une liste TransformerRuleList valide est associée à l’objet TransformerDefintion.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si un TransformerRuleList valide est associé à l’objet TransformerDefintion spécifié. Valeurs valides :
|
var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath);
var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody);
.
.
.
if (transformerDefinition.validate()) {
var results = [];
while (transformer.transform()) {
results.push(transformer.getRow());
}
}