TransformerDefinition – Scoped, Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Die TransformerDefinition -API stellt Methoden zum Instanziieren und Verwalten des TransformerDefinition-Objekts bereit, das eine Transformationsregelliste und einen Datensatzpfad verknüpft.

    Die TransformerDefinition -API funktioniert zusammen mit den APIs Transformer und TransformerRuleList. Zusammen wandeln diese APIs XML-Knoten oder eine beliebige Entität in einem strukturierten JSON-Dokument in eine Ausgabe von Name-Wert-Paaren um. Unterstützte JSON-Entitäten, einschließlich Objekte und Elemente innerhalb eines Arrays, z. B. Zeichenfolgen, Zahlen und andere Arrays.

    • Mit der TransformerRuleList -API können Sie Transformationsregellisten erstellen, die definieren, welche Daten im Quelldokument in die Ausgabe aufgenommen werden sollen und wie die Quelldaten transformiert werden.

    • Die TransformerDefinition -API verknüpft eine Transformationsregelliste mit einem JSON/XML-Datensatzpfad, um wiederverwendbare Transformationsdefinitionsobjekte zu definieren. Sie können ein Transformationsdefinitionsobjekt verwenden, um ein oder mehrere Quelldokumente umzuwandeln.

    Darüber hinaus stellt dieses Objekt Methoden bereit, mit denen Sie den Datensatzpfad des TransformerDefinition-Objekts abrufen können. Sie kann auch überprüfen, ob der Definition eine gültige TransformerRuleList zugeordnet ist.

    Die Transformer -API führt die tatsächliche Datentransformation für eine Datenentität nach der anderen durch und verwendet dabei die angegebene Transformationsregelliste, um die gewünschten Ausgabedaten zu erstellen.

    Sie können die TransformerDefinition -Klasse sowohl in bereichsbezogenen als auch in globalen Serverskripts verwenden. Wenn Sie diese Klasse verwenden, verwenden Sie den Namespace-Identifier sn_tfrm. Bevor diese API in einer Instanz verfügbar ist, müssen Sie außerdem das Transformation Service-Plugin (com.glide.transform) aktivieren.

    TransformerDefinition – TransformerDefinition(Object transformatorRuleList, String recordPath)

    Instantiiert ein TransformerDefinition-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    transformatorRuleList Objekt TransformerRuleList, die dieser Transformatordefinition zugeordnet werden soll.
    recordPath Zeichenfolge

    Optional. Der Pfad (JSONPath für JSON, XPath für XML), der den Container (übergeordnetes Element) von Knoten angibt, die als Datensätze im Quelldokument analysiert werden sollen.

    Für JSON-Dokumente können diese Knoten ein beliebiges Objekt, Array oder JSON-Grundelement (Zeichenfolge, Zahl, boolescher Wert) sein. Bei XML-Dokumenten sind diese Knoten die untergeordneten Elemente des Containers.

    Wenn recordPath nicht angegeben ist, wird das gesamte Dokument als einzelner Datensatz abgeleitet. Wenn bei JSON-Dokumenten der oberste Knoten ein Array ist und recordPath nicht angegeben ist, ist das oberste Array der Container des Datensatzes, und jeder seiner Einträge ist ein Datensatz.

    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 transformatorDefinitionSysId)

    Instantiiert ein TransformerDefinition-Objekt unter Verwendung einer vorhandenen Transformatordefinition.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    transformatorDefinitionSysId Zeichenfolge Sys_id einer Transformatordefinition. Befindet sich in der Tabelle „Datensatz-Umwandler“ [sys_record_transformer].

    In diesem Beispiel wird ein TransformerDefinition-Objekt basierend auf der angegebenen sys_id instanziiert.

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

    TransformerDefinition – recordPath()

    Wenn festgelegt, wenn das TransformerDefinition-Objekt instanziiert wurde, wird der Datensatzpfad für die Quelldatendatei zurückgegeben, die dem TransformerDefinition-Objekt zugeordnet ist.

    Ein Datensatzpfad (JSONPath für JSON, XPath für XML) identifiziert den Container (übergeordnet) von Knoten, die als Datensätze im Quelldokument analysiert werden sollen.

    Für JSON-Dokumente können diese Knoten ein beliebiges Objekt, Array oder JSON-Grundelement (Zeichenfolge, Zahl, boolescher Wert) sein. Bei XML-Dokumenten sind diese Knoten die untergeordneten Elemente des Containers.

    Wenn recordPath nicht angegeben ist, wird das gesamte Dokument als einzelner Datensatz abgeleitet. Wenn bei JSON-Dokumenten der oberste Knoten ein Array ist und recordPath nicht angegeben ist, ist das oberste Array der Container des Datensatzes, und jeder seiner Einträge ist ein Datensatz.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wenn festgelegt, der Datensatzpfad, der der Umwandlerdefinition zugeordnet ist. Wenn nicht festgelegt, wird NULL zurückgegeben.
    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 – validieren()

    Überprüft, ob dem TransformerDefintion-Objekt eine gültige TransformerRuleList zugeordnet ist.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob dem angegebenen TransformerDefintion-Objekt eine gültige TransformerRuleList zugeordnet ist.

    Gültige Werte:

    • true: Gültige TransformerRuleList zugeordnet
    • false: Ungültige oder keine TransformerRulList zugeordnet
    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());
      }
    }