TransformerDefinition : dans le champ d’application, global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • 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’accès à l’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, 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’enregistrement de l’objet TransformerDefinition. Il peut également valider si une TransformerRuleList valide est associée à la définition.

    L’API Transformer effectue la transformation des données réelles, 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 à portée et globaux. Lorsque vous utilisez cette classe, utilisez l’identificateur de l’espace de noms sn_tfrm . De plus, avant que cette API soit disponible dans une instance, vous devez activer le module d’extension Service de transformation (com.glide.transform).

    TransformerDefinition : TransformerDefinition(objet transformerRuleList, chaîne recordPath)

    Instancie un objet TransformerDefinition.

    Tableau 1. Paramètres
    Nom Type Description
    transformerRuleList Objet TransformerRuleList à associer à cette définition de transformateur.
    Chemin d’enregistrement Chaîne

    Facultatif. Chemin d’accès (JSONPath pour JSON, XPath pour XML) qui identifie le conteneur (parent) de 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 cette option n’est pas spécifiée, 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é, 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 d’une définition de transformateur.

    Table : Transformateur d’enregistrement [sys_record_transformer]

    Cet exemple instancie un objet TransformerDefinition basé sur le sys_id fourni.

    var transformerDefinition = new sn_tfrm.TransformerDefinition("7208b59743542110d4dc2c78c9b8f2e2");

    TransformerDefinition : recordPath()

    Si défini lorsque l’objet TransformerDefinition a été instancié, renvoie le chemin d’enregistrement du 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) de 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 cette option n’est pas spécifiée, 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é, 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 S’il est défini, chemin d’enregistrement associé à la définition de transformateur. Si cette option n’est pas définie, elle renvoie la valeur 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 TransformerRuleList valide est associée à l’objet TransformerDefinition.

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

    Valeurs valides :

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