Transformatordefinition: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Die Transformatordefinitions- API bietet Methoden zum Instanziieren und Verwalten des Transformatordefinitionsobjekts, das eine Transformationsregelliste und einen Datensatzpfad zuordnet.

    Diese API funktioniert 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 Objekten und Elementen in einem Array, z. B. Zeichenfolgen, Zahlen und andere Arrays.

    • Mit der Transformatorregelliste -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 Transformatordefinitions- API ordnet eine Transformationsregelliste einem JSON/XML-Datensatzpfad zu, 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 Objekts „TransformDefinition“ abrufen können. Sie kann auch überprüfen, ob der Definition eine gültige Transformatorregelliste zugeordnet ist.

    Die Transformator -API führt die eigentliche 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 Klasse „TransformDefinition“ sowohl in bereichsbezogenen als auch in globalen Serverskripten verwenden. Wenn Sie diese Klasse verwenden, verwenden Sie den Namespace-Bezeichner sn_tfrm. Bevor diese API in einer Instanz verfügbar ist, müssen Sie außerdem das Plugin „Transformation Service“ (com.glide.transform) aktivieren.

    Transformatordefinition: Transformatordefinition(Objekt transformatorRuleList, Zeichenfolge recordPath)

    Instanziiert ein Transformatordefinitionsobjekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    transformatorRuleList Objekt Transformatorregelliste, 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 identifiziert, die als Datensätze im Quelldokument analysiert werden sollen.

    Bei JSON-Dokumenten können diese Knoten ein beliebiges Objekt, Array oder JSON-Primitiv (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());
    }

    Transformatordefinition: Transformatordefinition (Zeichenfolge transformatorDefinitionSysId)

    Instanziiert ein Transformatordefinitionsobjekt anhand einer vorhandenen Transformatordefinition.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    transformatorDefinitionSysId Zeichenfolge Sys_id einer Transformatordefinition.

    Tabelle: Datensatz-Umwandler [sys_record_transformer]

    In diesem Beispiel wird ein Transformatordefinitionsobjekt basierend auf der angegebenen sys_id instanziiert.

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

    Transformatordefinition – recordPath()

    Wenn beim Instanziieren des Transformatordefinitionsobjekts festgelegt, wird der Datensatzpfad für die Quelldatendatei zurückgegeben, die dem Transformatordefinitionsobjekt zugeordnet ist.

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

    Bei JSON-Dokumenten können diese Knoten ein beliebiges Objekt, Array oder JSON-Primitiv (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());
    }

    Transformatordefinition – validieren ()

    Überprüft, ob dem Transformatordefinitionsobjekt eine gültige Transformatorregelliste zugeordnet ist.

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

    Gültige Werte:

    • wahr: Gültige Transformatorregelliste zugeordnet
    • „falsch“: Ungültige oder keine Transformatorliste 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());
      }
    }