TransformerDefinition - Champ d’application, Global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 3 minutes de lecture
  • L’API TransformerDefinition fournit des méthodes permettant d’instancier et de gérer l’objet TransformerDefinition, qui associe une liste de règles de transformation et un chemin d’enregistrement.

    L’API TransformerDefinition fonctionne avec les API Transformer et TransformerRuleList . Ensemble, ces API transforment des nœuds XML ou n’importe quelle entité d’un document JSON structuré en une sortie de paires nom-valeur. Entités JSON prises en charge, y compris les objets et les éléments d’un tableau, tels que les chaînes, les nombres et 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 sources.

    • 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 sources.

    En outre, cet objet fournit des méthodes qui vous permettent d’obtenir le chemin d’accès à 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 de 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 de serveur inclus dans le périmètre et globaux. Lorsque vous utilisez 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.

    Tableau 1. Paramètres
    Nom Type Description
    transformerRuleList (Liste des règles du transformateur) Objet TransformerRuleList à associer à cette définition de transformateur.
    chemin d’accès de l’enregistrement 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 n’est pas spécifié, alors 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.

    Tableau 2. Paramètres
    Nom Type Description
    transformerDefinitionSysId Chaîne Sys_id de la définition d’un transformateur. Situé dans la table Transformateur d’enregistrement [sys_record_transformer].

    Cet exemple instancie un objet TransformerDefinition en fonction du sys_id fourni.

    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’enregistrement du fichier de données source associé à l’objet TransformerDefinition.

    Un chemin d’accès de l’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 n’est pas spécifié, alors le tableau supérieur est le conteneur de l’enregistrement et chacune de ses entrées est un enregistrement.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Si 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 valeur TransformerRuleList valide est associée à l’objet TransformerDefintion.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Booléen Marqueur indiquant si un objet TransformerRuleList valide est associé à l’objet TransformerDefintion spécifié.

    Valeurs valides :

    • true : TransformerRuleList valide associée
    • false : non valide ou aucune valeur TransformerRulList associée
    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());
      }
    }