TransformerDefinition – Scoped, Global
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.
| 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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob dem angegebenen TransformerDefintion-Objekt eine gültige TransformerRuleList zugeordnet ist. Gültige Werte:
|
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());
}
}