Altova MapForce 2024 Enterprise Edition

Verarbeitet die mit dem values Input verbundene Wertesequenz und gibt nur die eindeutigen Werte als Sequenz zurück. Dies dient zum Entfernen doppelt vorhandener Werte aus einer Sequenz und zum Mappen der eindeutigen Datenelemente auf die Zielkomponente.

mf-func-distinct-values

 

Sprachen

Built-in, C++, C#, Java, XQuery, XSLT 2.0, XSLT 3.0..

 

Parameter

Name

Beschreibung

values

Mit diesem Input muss ein Mapping-Datenelement verbunden werden, das eine Sequenz von null oder mehr Werten liefert. So kann damit etwa ein Datenelement aus einer XML-Quelldatei, einem CSV-Feld, einem Datenbankdatensatz, usw. verbunden werden.

 

Beispiel

Die folgende XML-Datei enthält Informationen über Mitarbeiter einer Demo-Firma. Einige Mitarbeiter haben dieselbe Rolle (role), daher enthält das Attribut "role" doppelt vorhandene Werte. So haben etwa sowohl "Loby Matise" als auch "Susi Sanna" die Rolle "Support".

 

<?xml version="1.0" encoding="UTF-8"?>
<KeyValueList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="KeyValueList.xsd">
  <Item>
    <Property Key="role">Manager</Property>
    <Property Key="First">Vernon</Property>
    <Property Key="Last">Callaby</Property>
  </Item>
  <Item>
    <Property Key="role">Programmer</Property>
    <Property Key="First">Frank</Property>
    <Property Key="Last">Further</Property>
  </Item>
  <Item>
    <Property Key="role">Support</Property>
    <Property Key="First">Loby</Property>
    <Property Key="Last">Matise</Property>
  </Item>
  <Item>
    <Property Key="role">Support</Property>
    <Property Key="First">Susi</Property>
    <Property Key="Last">Sanna</Property>
  </Item>
</KeyValueList>

 

Angenommen, Sie möchten eine Liste aller eindeutigen Rollennamen, die in dieser XML-Datei vorkommen, extrahieren. Dies lässt sich mit einem Mapping wie dem unten gezeigten, ermitteln:

mf-func-distinct-values-example

Im oben gezeigten Mapping geschieht Folgendes:

 

Jedes Property-Element aus der XML-Quelldatei wird durch einen Filter verarbeitet.

Mit Hilfe der Verbindung mit dem Input bool des Filters wird sichergestellt, dass an die Zielkomponente nur Property-Elemente, deren Key-Attribut gleich "role" ist, übergeben werden. Der String "role" wird von einer Konstanten bereitgestellt. Beachten Sie, dass die Ausgabe des Filters an diesem Punkt immer noch Duplikate enthält (da es zwei "Support"-Eigenschaften gibt, die den Filterbedingungen entsprechen).

Die vom Filter erzeuge Sequenz wird von der distinct-values-Funktion verarbeitet, die etwaige doppelt vorhandenen Werte ausschließt.

 

Infolgedessen erhalten wir die folgende Mapping-Ausgabe (ausschließlich der XML- und Schema-Deklaration):

 

<items>
  <item>Manager</item>
  <item>Programmer</item>
  <item>Support</item>
</items>

© 2017-2023 Altova GmbH