boomi

Enterprise Integration mit Dell Boomi (Teil 4 von 5)

Ankit Vimal · 20. November 2020

Dieser Beitrag wurde aus dem englischen Original übersetzt.

Hallo Integrations-Enthusiasten!

Willkommen zum vierten Teil von Enterprise Integration mit Dell Boomi. Im dritten Teil (hier lesen, falls noch nicht geschehen) hatten wir die Lieferantendetails für jedes nachzubestellende Produkt abgerufen. In diesem Blogpost besprechen wir den vierten und fünften Schritt:

  1. Die Liste der Produkte abrufen
  2. Für jedes Produkt in der Liste ermitteln, ob eine Nachbestellung erforderlich ist
  3. Wenn ein Produkt nachbestellt werden muss, die Lieferanteninformationen abrufen
  4. Eine Liste der nachzubestellenden Produkte samt Lieferanteninformationen erstellen
  5. Die Liste in das CSV-Format konvertieren
  6. Die Liste per E-Mail an den Manager senden
  7. Den Prozess so konfigurieren, dass er täglich läuft

Schritt 4+5: Eine Liste der nachzubestellenden Produkte samt Lieferanteninformationen im CSV-Format erstellen

An diesem Punkt liegen uns sowohl die Produktinformationen als auch die Lieferantendetails vor. Es ist nun an der Zeit, sie zu kombinieren, sodass jedes Produkt auch die Details seines jeweiligen Lieferanten enthält. Das erreichen wir mit einer Message Shape.

Die Message Shape erzeugt eine frei formatierte Textnachricht aus einer dynamischen oder statischen Menge von Eingabeparametern. Dokumente, die an eine Message Shape gesendet werden, werden transformiert, und die herauskommenden Dokumente haben das Format der Nachricht.

Suchen Sie die Message Shape in der Leiste "Search Shapes" und platzieren Sie sie neben der vorherigen Shape. Wir konfigurieren diese Shape nun. Nach dem Kombinieren von Produkt- und Lieferanteninformationen ist das folgende Ergebnis gewünscht:

<Product>
	<ProductID>30</ProductID>
	<ProductName>Nord-Ost Matjeshering</ProductName>
	<CategoryID>8</CategoryID>
	<QuantityPerUnit>10 - 200 g glasses</QuantityPerUnit>
	<UnitPrice>25.8900</UnitPrice>
	<UnitsInStock>10</UnitsInStock>
	<ReorderLevel>15</ReorderLevel>
	<SupplierID>13</SupplierID>
	<CompanyName>Nord-Ost-Fisch Handelsgesellschaft mbH</CompanyName>
	<ContactName>Sven Petersen</ContactName>
	<ContactTitle>Coordinator Foreign Markets</ContactTitle>
	<Address>Frahmredder 112a</Address>
	<PostalCode>27478</PostalCode>
	<Country>Germany</Country>
	<Phone>(04721) 8713</Phone>
</Product>

Die Lieferanteninformationen liegen bereits als Inhalt unseres Dokuments vor, und wir können jedes Felddatum problemlos über das XML-Profil der Supplier-Information-Query abrufen. Außerdem hatten wir in einem unserer vorherigen Blogposts die Produktdetails in Dynamic Document Properties gespeichert und können sie nun von dort abrufen.

Im Feld "Variables" der Message Shape fügen wir diese Felddaten aus Profilelementen und Dynamic Document Properties hinzu. Klicken Sie auf das +-Symbol neben diesem Feld. Um Profilelemente hinzuzufügen, wählen Sie als Parameter Type "Profile Element" und konfigurieren Sie es wie unten gezeigt.

Da wir das beim Anlegen des Parameters für den OData Client Connector bereits einmal gemacht haben, besprechen wir die Schritte nicht erneut im Detail.

Um Daten aus Dynamic Document Properties zu verwenden, wählen wir als Type "Document Property". Sie werden feststellen, dass es keine Option gibt, den Typ als "Dynamic Document Property" anzugeben. Diese Option ist in Boomi standardmäßig nicht sichtbar.

Klicken Sie danach auf das Suchsymbol neben dem Feld "Document property". Damit öffnet sich das folgende Dialogfenster:

Klicken Sie nun auf das Dropdown "Property Type", und Sie sehen die Option "Dynamic Document Property".

Geben Sie den Namen der Property ein, die Sie abrufen möchten, sowie einen Default-Wert für diese Property, der verwendet wird, falls keine Daten verfügbar waren (nicht zwingend erforderlich). Wiederholen Sie diesen Schritt für jedes Datenfeld, das in Dynamic Document Properties gespeichert wurde.

Nach dem Hinzufügen der Variablen werden Sie feststellen, dass jeder von ihnen eine Nummer zugewiesen ist. Diese Nummer kann im Feld "Message" verwendet werden, um auf die Variable zu verweisen.

Damit können wir die Message wie folgt setzen:

<Product>
	<ProductID>{1}</ProductID>
	<ProductName>{2}</ProductName>
	<CategoryID>{3}</CategoryID>
	<QuantityPerUnit>{4}</QuantityPerUnit>
	<UnitPrice>{5}</UnitPrice>
	<UnitsInStock>{6}</UnitsInStock>
	<ReorderLevel>{7}</ReorderLevel>
	<SupplierID>{8}</SupplierID>
	<CompanyName>{9}</CompanyName>
	<ContactName>{10}</ContactName>
	<ContactTitle>{11}</ContactTitle>
	<Address>{12}</Address>
	<PostalCode>{13}</PostalCode>
	<Country>{14}</Country>
	<Phone>{15}</Phone>
</Product>

Wie besprochen werden Zahlen in geschweiften Klammern verwendet, um auf den Inhalt dieser Variablen zu verweisen.

In vielerlei Hinsicht ähnelt die Message Shape der "Content Modifier" Shape von SAP CPI. In einem Content Modifier hätten wir den Message Body auf ähnliche Weise setzen können. Statt Zahlen als Variablenverweise hätten wir jedoch den Typ (Header/Property) und den Namen der Variablen verwendet. Der Message Body hätte also etwa so ausgesehen:

<Product>
	<ProductID>${property.ProductID}</ProductID>
	<ProductName>${property.ProductName}</ProductName>
	<CategoryID>${property.CategoryID}</CategoryID>
	<QuantityPerUnit>${property.QuantityPerUnit}</QuantityPerUnit>
	<UnitPrice>${property.UnitPrice}</UnitPrice>
	<UnitsInStock>${property.UnitsInStock}</UnitsInStock>
	<ReorderLevel>${property.ReorderLevel}</ReorderLevel>
	<SupplierID>${property.SupplierID}</SupplierID>
	<CompanyName>${property.CompanyName}</CompanyName>
	<ContactName>${property.ContactName}</ContactName>
	<ContactTitle>${property.ContactTitle}</ContactTitle>
	<Address>${property.Address}</Address>
	<PostalCode>${property.PostalCode}</PostalCode>
	<Country>${property.Country}</Country>
	<Phone>${property.Phone}</Phone>
</Product>

Nachdem wir nun alle gewünschten Daten haben, konvertieren wir sie in das CSV-Format (Comma Separated Values). Das unterscheidet sich leicht von unserem Vorgehen in SAP CPI, wo wir zuerst alle XML-Knoten gesammelt und sie dann in einem Zug nach CSV konvertiert hatten. Bitte beachten Sie, dass wir dasselbe auch in Boomi hätten tun können, aber dies ist meines Erachtens eine gute Gelegenheit, einen anderen Lösungsansatz für dasselbe Problem zu erkunden.

Für die Konvertierung nach CSV verwenden wir eine Map Shape. Maps werden verwendet, um Daten von einem Format in ein anderes zu transformieren, genauer gesagt von einem Profil in ein anderes. Die Map Shape referenziert eine vordefinierte Map-Komponente.

Bevor wir eine Map Shape verwenden, legen wir ein Profil für das resultierende CSV-Format an. Klicken Sie dazu oben links auf der Canvas auf die Schaltfläche "+New". Damit öffnet sich ein Dialog zum Anlegen einer neuen Komponente.

Ein neues Profil wird erstellt.

Klicken Sie auf den Dropdown-Pfeil neben "Elements" und dann auf "Add Element".

Für jedes Datenfeld zu Produkt und Lieferant, das wir in unserer Message haben, legen wir ein entsprechendes Element in diesem Profil an.

Abgesehen vom Namen des Elements nehmen wir keine Änderungen vor. Speichern und schließen Sie das Profil, sobald alle Elemente hinzugefügt wurden.

Klicken Sie auf den Reiter "Options", um das Trennzeichen für dieses Profil festzulegen. Wir verwenden ein Semikolon als Trennzeichen. Das lässt sich so angeben:

Analog legen wir ein Profil für die kombinierten Daten im XML-Format an. Wiederholen Sie die Schritte zum Anlegen eines Profils, erstellen Sie diesmal jedoch ein XML-Profil. Von dieser Maske werden Sie begrüßt, wenn Sie ein neues XML-Profil anlegen.

Klicken Sie auf "Import", und Sie gelangen zu einem XML Import Wizard.

Sie können dieses Profil anlegen, indem Sie einfach die Daten importieren, die aus der vorherigen Shape herauskommen. Diese Daten erhalten Sie, indem Sie den Prozess im Test Mode ausführen. Nach dem Import sieht das Profil so aus:

Nachdem wir nun sowohl das Quell- als auch das Zielprofil haben, fügen wir eine Map Shape auf der Canvas hinzu. Suchen Sie nach der Map Shape und fügen Sie sie hinter der zuvor konfigurierten Message Shape ein.

Klicken Sie auf die grüne +-Schaltfläche neben dem Feld "Map". Eine neue Map-Komponente wird erstellt.

Wählen Sie als Map Source das von uns erstellte XML-Profil und als Map Destination das Flat-File-Profil. Wir müssen nun jedes Feld im Quellprofil auf sein Gegenstück im Zielprofil mappen. Ziehen Sie dazu einfach eine Verbindung bzw. Linie vom Quellfeld zum Zielfeld. Nach dem Mapping aller Felder sieht die Map-Komponente so aus:

In komplexeren Szenarien hätten wir diesen Mappings Funktionen hinzufügen können. Da unsere Anforderung recht einfach ist, benötigen wir das nicht. Mehr zu diesen Funktionen lesen Sie hier.

Speichern und schließen Sie die Map-Komponente und führen Sie den Prozess im Test Mode aus, nachdem Sie die Map Shape mit dem restlichen Prozess verbunden haben. Sie werden feststellen, dass die Ausgabe der Map Shape im CSV-Format vorliegt. Allerdings enthält jedes Dokument weiterhin die Details eines einzelnen Produkts und wir haben bislang keine kombinierte Liste. Diese Liste lässt sich leicht erstellen, indem alle diese Dokumente zusammengeführt werden. Dafür verwenden wir eine "Data Process" Shape.

Die Data Process Shape bietet Ihnen eine Reihe von Optionen zur Bearbeitung von Dokumentdaten innerhalb eines Prozesses, vom Aufteilen und Zusammenführen von Dokumenten bis zum Zippen und Entzippen von Daten. Sie können mehrere Processing Steps definieren, um mehr als eine Aktion auf den Dokumentdaten auszuführen. Die Processing Steps werden in der in der Data Process Shape definierten Reihenfolge ausgeführt. Jeder Processing Step arbeitet auf den Ausgabedaten des vorherigen Processing Steps.

In SAP CPI hatten wir stattdessen eine "Gather" Shape verwendet. Die Funktionen der Gather Shape sind eine Teilmenge der Funktionen der "Data Process" Shape in Boomi.

Suchen Sie eine "Data Process" Shape, platzieren Sie sie auf der Canvas und verbinden Sie sie mit der "Map" Shape. Fügen Sie innerhalb der Data Process Shape einen Processing Step "Combine Documents" hinzu und konfigurieren Sie ihn so:

Wir haben als Profile Type "Flat file" angegeben, da wir die Daten bereits in das CSV-Format konvertiert haben.

Wenn Sie den Prozess jetzt im Test Mode ausführen, erhalten Sie eine Liste der Produkte und Lieferanteninformationen im CSV-Format, was das Ziel dieser Lektion war. Wir legen hier eine Pause ein, damit Sie die behandelten Themen vollständig verstehen und würdigen können. In diesem Blogpost haben wir die Message Shape, die Map Shape und die Data Process Shape sowie das Anlegen von Flat File und XML Profiles kennengelernt. Außerdem haben wir die Gegenstücke dieser Shapes in SAP CPI besprochen. Im nächsten Blogpost machen wir die Daten versandfertig und lernen den Einsatz eines Mail Connectors, während wir unsere Reise durch die Enterprise Integration mit Dell Boomi abschließen. Bis dahin: Auf Wiedersehen und viel Freude beim Lernen!

Ähnliche Beiträge

Das könnte Sie auch interessieren

Aktualisieren Sie Ihre Unternehmensintegration.

Mit zunehmender Effizienz bei Digitalisierung und Datenfluss erwarten Sie einen höheren Unternehmenswert und eine bessere Wettbewerbsfähigkeit.