Deserialisierung mit RPA

Unser Team hat sich in den vergangenen Wochen mit Deserialisierung von unterschiedlichen Dokumententypen befasst, um diese weiterverarbeiten zu können. Dabei wurden XML- und JSON-Dateien behandelt. Es gibt unzählige Quellen und Beispiele, wo diese Daten herkommen können. Immer verbreiteter werden Programmierschnittstellen "APIs" (Application Programming Interface), worüber zwei Applikationen miteinander kommunizieren (und Daten austauschen) können. Solche Abfragen finden standardmässig mit REST oder SOAP statt. Als Protokoll wird HTTP verwendet. In einer Blog-Reihe "Deserialisierung mit RPA" (RPA steht für Robotic Process Automation) wurden drei Bereiche vorgestellt, wie diese gängigen Dateiformate verarbeitet oder generiert werden können. Zur Verarbeitung wurde die RPA-Software "UiPath" verwendet, die für den privaten Gebrauch als "Community Edition" benutzt werden kann.

In Excel lassen sich ebenfalls Daten aus diesen Datei-Typen abrufen. Allerdings ist womöglich die Weiterverarbeitung nach wie vor manuell fertigzustellen - ausser man arbeitet mit Makros (VBA), was im Grundsatz sehr ähnlich wie "RPA" ist. Du findest die Import-Möglichkeiten unter dem Menüpunkt "Daten" → "Daten abrufen" → "Aus Datei":

DatenAabrufen_AusDatei

Deserialisierung mit RPA - Teil 1 "XML"

In diesem Beitrag wird das XML-Format vorgestellt und gezeigt, wie auf einzelne Elemente im Ursprungsdokument zugegriffen werden kann.

Deserialisierung mit RPA - Teil 2 "JSON"

Das Textformat "JSON" ist heutzutage wohl die bevorzugteste Variante, da sie praktisch von allen Programmiersprachen verstanden werden kann. Ähnlich wie der Teil 1 "XML" wird in diesem Beitrag die Verarbeitung von JSON-Files thematisiert.

Deserialisierung mit RPA - Teil 3 "API"

Im abschliessenden Beitrag der Blog-Reihe wird der Umgang mit "APIs" beschrieben. Dies ist der Beitrag dazu. Es wird gezeigt, wie in UiPath Studio mittels "Bot-Aktivitäten" APIs angebunden werden können und so direkt auf verfügbare Daten - wie z.B. der NASA - zugegriffen werden kann. Das gewählte Ausgabeformat (z.B. JSON) lässt sich dann mit vorher genannten Methoden weiterverarbeiten, um eine end-to-end Automatisierung innerhalb des Prozesses oder der Tätigkeit zu erlangen.

Für die kommerzielle Nutzung von UiPath - also für Organisationen, die diese "Software-Roboter" für die Automatisierung interner (wiederkehrender) Prozesse & Tätigkeiten verwenden, fallen entsprechende Lizenzen an. Excelblog (Routinuum GmbH) ist Implementierungspartner und begleitet seine Kunden von der Konzeptphase bis hin zur effektiven Umsetzung und dem Betrieb der Automatisierungslösungen.

Verknüpfungen zu externen Quellen

Verknüpfungen und Verweise auf externe Dateien sind gang und gäbe. Solange man auf seinem eigenen Gerät arbeitet oder Zugang zu den verlinkten Dateien hat, stellt dies oftmals kein Problem dar. Beim Öffnen der Haupt-Excel-Datei wird jeweils ein Dialog gestartet, ob man die Verknüpfungen aktualisieren möchte:

VerknuepfungAktualisieren_Dialog

Das birgt jedoch gewisse Risiken und teilweise möchte man die gezeigten Werte auf keinen Fall aktualisieren. Falls man auf "Aktualisieren" klickt, kann es auch vorkommen, dass man die Datei neu verlinken müsste. Dies tritt dann auf, wenn der erwartete Dateipfad nicht gefunden werden kann (die Datei wurde verschoben, umbenannt oder ist nicht auf unserem Gerät verfügbar - je nach dem, mit wem und wie man zusammenarbeitet). Es ist naheliegend, dass man dann auf "Nicht aktualisieren" klickt. Wie man die lästige Dialogbox jedoch gar nicht mehr angezeigt bekommt, zeige ich Dir weiter unten.

Datenvorbereitung und Beispiel

Für unser illustratives Beispiel habe ich bestimmte "Monatsdaten" aufbereitet, die jeweils zu verlinken sind, um das (laufende) Resultat des Jahres zu sehen. Es wäre nun an der Zeit, die Juli-Daten einzufügen:

VerknuepfungAktualisieren_Monatsdaten

Mit der untenstehenden Formel leiten wir die Daten aus der Ursprungsdatei (und dem Tabellenblatt "Juli-Daten") her:

='[Verlinkte-Datei.xlsx]Juli-Daten'!$C$4

Die Eingabe sieht in Excel wie folgt aus und liefert uns als Resultat "125", wie dies in der anderen Datei steht:

VerknuepfungAktualisieren_Formel

Dialogbox "Verknüpfungen zu externen Quellen" ausblenden

Sobald Du einen Link zu einer externen Datei hinterlegst, wird eine Schaltfläche unter dem Menüpunkt "Daten" aktiv: "Verknüpfungen bearbeiten". Du findest die Funktion hier:

VerknuepfungAktualisieren_VerknBearbeiten

Du hättest in der gezeigten Maske die Möglichkeit, Verknüpfungen komplett zu löschen. Dies ersetzt alle Bezüge zu externen Dateien mit deren effektiven Werte. Das kann sinnvoll sein, gerade dann, wenn die Datei an jemanden gesendet werden soll. Alternativ kann man links unten auf "Eingabeaufforderung beim Start..." klicken und dort auswählen, dass keine Warnung angezeigt werden soll sowie keine Verknüpfung aktualisiert werden soll. Dies führt dazu, dass beim Öffnen der Datei die lästige Dialogbox gar nicht mehr angezeigt wird.

VerknuepfungAktualisieren_Eingabeaufforderung

Dass keine Dialogbox mehr angezeigt wird, ist auch gültig für zukünftige Verlinkungen. Das bedeutet: Fügst Du weitere Links ein, wird man dazu auch nicht aufgefordert, ob die Daten aktualisiert werden sollen. Du könntest diese Eingabeaufforderung beim Start also einmalig hinterlegen (und ein fiktiver Bezug einrichten, damit die Schaltfläche überhaupt verfügbar ist und die Verlinkung anschliessend erneut löschen).

Text in Pivot-Feldern anzeigen

Eine Pivot-Tabelle setzt man insbesondere ein, um Daten zu verdichten und in eine aggregierte Form zu bringen. Dabei werden normalerweise Kategorien oder Posten als "Zeilen" auf der linken Seite angeordnet, zu denen man auf der rechten Seite die zusammengeführten Details wie beispielsweise "Umsatz" als Werte darstellt. Neben den Wertfeldeinstellungen (Summe, Anzahl, Mittelwert, etc.) kannst Du die Werte auch anzeigen als % des Gesamtergebnisses, laufende Summe in % (= kumuliert) usw. Gehe hierzu in der Pivot-Feldliste auf das Wertfeld und wähle "Wertfeldeinstellungen...":

Pivot-Wertfeldeinstellungen

Wähle danach entweder das Register "Werte zusammenfassen nach" oder "Werte anzeigen als", um die gewünschte Anzeige zu erlangen:

Pivot-Wertfeldeinstellungen_Details

Pivot-Wertfeldeinstellungen_Details2

Durch die obigen Einstellungen wird jedoch etwas erkennbar: Wir aggregieren jeweils Werte, mit denen mathematische Operationen möglich sind. Es ist nicht möglich, Texte als Werte darzustellen. Selbiges gilt für Berechnete Felder.

Möchte man Texte als Werte darstellen, erhält man höchstens die Anzahl Einträge; es gibt keine anderslautenden Wertfeldeinstellungen. Um das gewünschte Ergebnis zu erlangen, benötigt es einen "Workaround". Eine Alternative bietet Dir die weitere Anordnung der "Texte" als Zeilen, unterhalb Deiner gewünschten Hauptkategorie. Zunächst sind die Informationen untereinander angeordnet:

Pivot-Aggregation_Text-in-Pivot

In einem früheren Beitrag wurde dargestellt, wie man mehrere Angaben als Zeilen hinterlegen und diese anordnen kann.

Falls jedoch die Umsätze eine höhere Relevanz haben und die Zusatztexte erst weiter rechts erscheinen sollten, benötigt es einen Workaround. Kopiere die bereits erstellte Pivot-Tabelle und füge sie unmittelbar rechts davon erneut ein. Du musst nicht einmal Werte in dieser zweiten Pivot einfügen, die Zeilen sollten jedoch Deine Produkte und beispielsweise den Hauptlieferant ("Biobauer Meier", "Importeur A", "Bauer Muster") zunächst untereinander anordnen - wie im Screenshot oben illustriert. Öffne zunächst die Feldeinstellungen von "Produkt":

Pivot-Feldeinstellung_Produkt

Wähle daraufhin in der ersten Maske (Teilergebnisse) "Keine" und unter dem Register "Layout & Drucken" die Option "Elementnamen im Tabellenformat anzeigen". Somit werden die Daten nebeneinander aufgeführt. Eine ausführliche Erläuterung findest Du im verlinkten Beitrag oben.

Um nun das finale Format zu erlangen, blende einfach die Spalte C aus und es sieht aus, als wären Deine Texte als Werte in der Pivot angezeigt.

Abschliessende Bemerkungen und Hinweise

Bitte beachte, dass diese Variante nicht funktionieren kann, wenn Du mehrere Werte mit Spalteneinträgen in der Pivot (von links nach rechts; beispielsweise Jahreszahlen) aufbrechen und darstellen möchtest.

Falls der Anwender die Pivot-Tabelle filtern möchte, zieht es diese Einstellungen natürlich nur in einer Tabelle nach. Falls Du jedoch mit einem Datenschnitt (Slicer) oder einer Zeitachse (siehe Datenschnitt / Slicer in Pivot-Tabellen und Verknüpfungen zweier Pivot-Tabellen) arbeitest, kannst Du mit Berichtsverbindungen erlangen, dass beide Pivot-Tabellen gleichzeitig gefiltert werden.