Beispiel: SELECT mit Parametern
In diesem Beispiel wird gezeigt, wie Sie ein MapForce-Mapping erstellen, das Daten aus einer SQLite-Datenbank ausliest und in eine CSV-Datei schreibt. In dem hier beschriebenen Mapping wird eine benutzerdefinierte SELECT-Datenbankabfrage mit einem Parameter verwendet. Die SELECT-Anweisung kombiniert Daten aus mehreren Tabellen miteinander. Die Ergebnisse davon werden dem Mapping anschließend für die weitere Verarbeitung zur Verfügung gestellt.
Die Mapping-Datei (.mfd) zu diesem Beispiel finden Sie unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2023\MapForceExamples\select-component.mfd. Sie können die Beispieldatei zuerst öffnen und einen Blick darauf werfen oder sie mit Hilfe der unten beschriebenen Schritte von Grund auf neu erstellen.
Zwar wird in diesem Beispiel eine SQLite-Datenbank verwendet, doch ist die Vorgangsweise auch bei anderen Datenbanktypen dieselbe. Informationen zum Herstellen einer Verbindung zu anderen Datenbanken finden Sie unter Herstellen einer Verbindung zu einer Datenbank.
Mit dem Mapping möchten wir folgendes Ergebnis erzielen:
1.Wir müssen aus der Datenbank nur diejenigen Bestellungen auswählen, bei denen die Anzahl der bestellten Posten einen benutzerdefinierten Wert übersteigt. Dieser benutzerdefinierte Wert sollte dem Mapping als Parameter bereitgestellt werden. Zu diesem Zweck wollen wir eine benutzerdefinierte SELECT-Anweisung mit einem Input-Parameter erstellen.
2.Das Datumsformat in der Access-Datenbank ist JJJJ-MM-TT HH-MI-SS. Der Uhrzeitteil muss in der CSV-Datei entfernt werden, sodass das Format JJJJ-MM-TT lautet. Wir verwenden dazu die MapForce-Funktion date-from-datetime.
3.Die erzeugte CSV-Datei muss den Namen OrdersReport.csv erhalten.
Schritt 1: Hinzufügen der SELECT-Struktur
1.Klicken Sie im Menü Einfügen auf Datenbank.
2.Wählen Sie SQLite und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur DateiAltova-Products.sqlite aus dem Ordner MapForceExamples\Tutorial herzustellen.

3.Klicken Sie im Dialogfeld "Datenbankobjekte einfügen" auf SELECT-Anweisung hinzufügen/bearbeiten und geben Sie die folgende Abfrage ein:
SELECT *, (Quantity * UnitPrice) AS Price |
In dieser Abfrage wird eine JOIN-Anweisung zwischen den Tabellen Orders und Products verwendet. Sie ruft alle Felder (*) sowie einen berechneten Wert (AS Price) ab. Außerdem ist in der Abfrage in der WHERE-Klausel der Parameter :Quantity definiert.

4.Klicken Sie auf SELECT-Anweisung hinzufügen.
5.Klicken Sie auf OK. Die Komponente altova-products wurde nun zum Mapping-Bereich hinzugefügt.
6.Klicken Sie in der Komponente altova-products auf und wählen Sie den Befehl Aufruf mit Parametern einfügen.

Im Mapping steht nun eine neue Struktur (SELECT_Statement) zur Verfügung. Sie besteht aus zwei Teilen: der linke Teil liefert Input-Konnektoren und der rechte Teil liefert Output-Konnektoren. Beachten Sie, dass der linke Teil auch den zuvor definierten Parameter Quantity enthält.

Schritt 2: Hinzufügen des Input-Parameters
1.Klicken Sie im Menü Einfügen auf Input-Komponente einfügen.
2.Geben Sie als Name "Quantity" ein.
3.Geben Sie unter Design-time-Ausführung einen Parameterwert ein, der für die Ausführung des Mappings während der Designphase verwendet werden soll (in diesem Beispiel, "2"). Nähere Informationen dazu finden Sie unter Bereitstellen von Parametern für das Mapping.

Sie können den Input-Parameter nun, wie unten gezeigt, mit der Datenbankaufrufstruktur verbinden.

Schritt 3: Hinzufügen der CSV-Zielkomponente
1.Klicken Sie im Menü Einfügen auf Textdatei.
2.Wählen Sie die Option Einfache Verarbeitung für Standard-CSV....verwenden und klicken Sie auf Weiter.
3.Klicken Sie im Dialogfeld "Komponenteneinstellungen" auf Feld anhängen und fügen Sie neun neue Felder hinzu. Es wird empfohlen, den Feldern der CSV-Datei die Namen der Felder aus der Datenbank zu geben (siehe unten). Dadurch sparen Sie später beim Ziehen der Mapping-Verbindungen Zeit. Nähere Informationen zu diesen Einstellungen finden Sie unter Definieren der CSV-Optionen.

4.Erstellen Sie eine Verbindung zwischen dem result-Node der SELECT-Struktur und dem Zeilen-Node der CSV-Komponente.

Da die meisten Felder in der CSV-Komponente denselben Namen wie ihr Datenbankäquivalent haben, werden die Mapping-Verbindungen wahrscheinlich automatisch erstellt, wenn Sie result mit Rows verbinden. Stellen Sie andernfalls sicher, dass im Menü Verbindung die Option Idente Sub-Einträge automatisch verbinden aktiv ist. Das einzige Mapping-Datenelement, das Sie manuell verbinden müssen, ist ProductID, da es in der SELECT-Struktur kein Feld mit diesem Namen gibt.
Schritt 4: Datumskonvertierung
Suchen Sie im Fenster "Bibliotheken" nach der Funktion date-from-datetime und ziehen Sie diese in den Mapping-Bereich. Verbinden Sie anschließend ihren Input und Output wie unten gezeigt.

Schritt 5: Definieren des Namens der Ausgabedatei
Um als Namen der Ausgabedatei OrdersReport.csv zu definieren, doppelklicken Sie auf die Titelleiste der CSV-Komponente. Daraufhin wird das Dialogfeld "Komponenteneinstellungen" angezeigt, in dem Sie den Wert in das Feld Ausgabedatei eingeben können.