Nur ohne Hände! Roboter, die Benutzeraktionen nicht wiederholen

In diesem Übersichtsartikel wird erläutert, wie RPA für Geschäftsprozesse verwendet wird. Dazu gehören Aufgaben, die normale Benutzer nicht ausführen können, nicht möchten oder die viel Zeit in Anspruch nehmen und spezielle Kenntnisse erfordern, z. B. das Arbeiten mit FTP-Datenbanken oder API.

Die Einbeziehung solcher Aktionen in den Prozess bringt seine Erstellung der traditionellen Programmierung und "Skripten" mit allen Vor- und Nachteilen dieses Ansatzes näher.

Die Verwendung der API selbst bei Aufgaben, die für die Robotik traditionell sind, kann die Ausführungsgeschwindigkeit erheblich erhöhen, die Zuverlässigkeit und Stabilität erhöhen. Gleichzeitig wird uns jedoch der Traum genommen, dass Geschäftsbenutzer ihre Prozesse selbst erstellen und warten, und ihre Entwicklung und Unterstützung auf jeden Fall wieder in ihre Hände gegeben Entwicklungsteams.

Wann es möglich ist und wann es notwendig ist, Aktionen auf einer niedrigeren Ebene hinzuzufügen, werde ich versuchen, in diesem Artikel zu erklären. Der erste einleitende Teil enthält allgemeine Überlegungen und der zweite spezifische Beispiele. Es werden Beispiele für eine Plattform angegeben, mit der ich vertraut bin (UiPath). Wenn Sie also andere Geschmäcker und Farben von Robotern bevorzugen, sollten Sie sich nicht im Voraus beleidigen lassen.



Pro und Contra Robotics Low


Warum sind solche Roboter nützlich?


  • Deutlich beschleunigte Arbeit. Oft ist dies der Hauptgrund, warum wir über eine Interaktion auf niedriger Ebene mit externen Systemen nachdenken. Wenn wir den Prozess zehnmal beschleunigen können, können wir die Verwendung zusätzlicher Roboter mit ihren virtuellen Maschinen und Lizenzen einsparen.
  • Die Zuverlässigkeit wird erhöht, Sie müssen nicht mehr mit phantasievoll dynamischen Selektoren in der Benutzeroberfläche arbeiten, überlegen, wie Sie das Captcha umgehen, um die Genauigkeit der Erkennung eines Bildes in Citrix kämpfen, auf das Sie kein Plugin setzen können, oder endloses Scrollen auf der Nachrichtenseite.
  • Arbeiten Sie mit Systemen, die keine vollständige Benutzeroberfläche haben oder die es Ihnen nicht ermöglichen, alle erforderlichen Informationen über die Benutzeroberfläche abzurufen. In meiner Praxis gab es beispielsweise einen Fall, in dem wir Daten über die API von Shopify übernommen , an ShipHero übertragen und an das interne Buchhaltungssystem gesendet haben. Nur im letzten Schritt wurde die Benutzeroberfläche verwendet.

Warum sind solche Roboter schädlich?


  • Geschäftsanwender verstehen nicht mehr, was unser Roboterprozess tut, und können ihn nicht selbst ändern und warten. Dies gilt nicht so für unbeaufsichtigte Roboter, aber für Attended (digitale Assistenten) ist dies ein erhebliches Minus, da wir möchten, dass Benutzer die Autoren ihrer Prozesse selbst sind.
  • Die Sichtbarkeit und Verständlichkeit des Prozesses für den Sicherheitsdienst geht verloren. Wenn wir mit einem gewöhnlichen Roboter klar nachweisen können, dass er dieselben Aktionen wie der „organische“ Benutzer ausführt, ist es sogar möglich, Jobbeschreibungen als Dokumentation zu verwenden. Bei einer Integration auf niedriger Ebene müssen wir uns darauf einigen, dass unser Prozess durchlaufen werden muss die gleichen langwierigen Überprüfungs- und Kontrollverfahren wie bei der „großen“ Automatisierung.
  • Dito in Bezug auf Integrationsteams. Sobald wir die API verwenden, fallen wir in ihren Nachlass und müssen uns an ihre Regeln halten.
  • Die Kosten und Risiken einer „echten“ Programmierung sind höher als die der Robotik. Wenn eine Person einen Knopf drücken kann, kann ein Roboter ihn auch drücken. Aber kann uns die API eines alten undokumentierten Systems die notwendigen Daten liefern? Ist es möglich, Informationen direkt in die Datenbank zu schreiben, oder zerstören wir deren Integrität? Ist für diese Aufgabe ein erfahrener Spezialist erforderlich oder reicht es für einen Anfänger? Warum gibt Slides.Duplicate in PowerPoint.Interop ein Array zurück? Die Antwort auf all diese interessanten Fragen kann erhalten werden, aber es wird einige Zeit dauern.

Wann Sie brauchen und wann Sie die Programmierung in Robotern nicht verwenden sollten


Das Obige kann wie folgt zusammengefasst werden:

Die Programmierung lohnt sich, wenn


  • Ihrem Prozess mangelt es an Produktivität
  • UI-Systeme sind für die Automatisierung nicht geeignet, es gibt jedoch eine praktische API

Die Programmierung sollte nicht verwendet werden, wenn


  • Prozesse werden von Geschäftsbenutzern entwickelt oder unterstützt.
  • Die Verwendung der API erschwert es dem Roboter, Verhandlungsprozesse zu durchlaufen



Womit und wie macht es Sinn, Code zu verarbeiten?


Dann habe ich versucht, einige Beispiele für die Arbeit mit Code zu nennen, die ich auf die eine oder andere Weise beim Erstellen von Robotern wirklich verwenden musste, was bedeutet, dass sie im Leben stattfinden. Natürlich ist die Liste nicht vollständig, aber ich hoffe, sie ist illustrativ.
Alle Beispiele werden zum Zeitpunkt des Schreibens auf den neuesten Release-Versionen der Aktionen getestet.

Microsoft Office


Seltsamerweise ist Microsoft Office einer der ersten Kandidaten, die über die API arbeiten. Ja, UiPath verfügt über hervorragende integrierte Funktionen für die Arbeit mit Excel (sogar zwei Typen, einer mit Dateien direkt, der zweite über die Anwendung). Es gibt auch Möglichkeiten, mit Word zu arbeiten (das UiPath.Word.Activities Paket wird über den Paketmanager UiPath.Word.Activities ). Zum Beispiel gibt es keine Standardaktionen für die Arbeit mit PowerPoint, und es gibt auch Outlook oder sogar Visio mit Project, die in großen Unternehmen immer noch recht aktiv eingesetzt werden. Mit Office können Sie sich über die Benutzeroberfläche ganz einfach mit einem Roboter anfreunden. In einigen Fällen ist dies jedoch nicht sehr praktisch, da nicht auf alle Elemente der Benutzeroberfläche direkt zugegriffen werden kann und Sie Skalen auf der Tastatur spielen müssen. Beispielsweise öffnet eine Aktion Type Into mit dem Text k [tab] k [f10] JCDD (für die englische Version von Office) die Diagrammdaten von einer PowerPoint-Folie zur Bearbeitung in Excel. Solche Kombinationen funktionieren gut, sehen aber magisch sauberer aus als IDDKQD.
ProTip: Die Liste der verfügbaren Selektoren kann mithilfe von Microsoft UI Automation (UIA) anstelle des standardmäßig ausgewählten Microsoft Active Accessibility (MSAA) -Frameworks erweitert werden. Wechseln Sie mit der Taste F4 im UI-Explorer dorthin und prüfen Sie, ob es einen Unterschied gibt
Zum Arbeiten mit Office-Dateien können Sie Bibliotheken von Drittanbietern verwenden, z. B. Xceed DocX- oder Spire-Bibliotheken wie Spire.Presentation . Beachten Sie bei der Arbeit mit Bibliotheken von Drittanbietern die Lizenz, die möglicherweise nicht immer für Ihr Unternehmen geeignet ist (z. B. wird iTextSharp für PDF kostenlos über AGPL und PDFSharp über MIT verteilt ). Diese Methode ist sehr praktisch, da sie auch verwendet werden kann, wenn Microsoft Office nicht auf dem Computer installiert ist. Dies bedeutet, dass sie sich hervorragend für unbeaufsichtigte Roboter eignet, die auf virtuellen Maschinen ausgeführt werden.

Bei komplexer Arbeit mit Office-Programmen Microsoft.Office.Interop . Es ermöglicht uns, Aktionen in Anwendungen auszuführen, Daten zu bearbeiten usw. Sie können mehr als einen Artikel den Funktionen der Arbeit mit Office.Interop widmen, einer alten und fragilen Sache, die jedoch für unsere Zwecke geeignet ist. Damit Interop funktioniert, müssen Sie Imports die entsprechenden Assemblys hinzufügen.

Hier einige Beispiele, wie Sie mit Office Interop arbeiten können:

Ausblick


Die Funktionalität von Outlook ist viel umfassender als nur das Arbeiten mit E-Mails. Es handelt sich um einen Manager für persönliche Informationen, und es gibt einen Kalender, ein Notizbuch und ein Adressbuch, im Allgemeinen einen vollständigen Satz. Wenn alles mit E-Mail normalerweise durch direkten Zugriff auf den Server gelöst werden kann, wenn es sich um IMAP / POP3-Schnittstellen handelt, ist der Rest der Informationen viel einfacher von Outlook selbst zu erhalten. Dafür passt Interop perfekt.

Eine Liste der Kalenderereignisse abrufen
 Dim oApp As New Microsoft.Office.Interop.Outlook.Application Dim mapiNamespace As Microsoft.Office.Interop.Outlook.NameSpace Dim calendarFolder As Microsoft.Office.Interop.Outlook.MAPIFolder Dim calendarItems As Microsoft.Office.Interop.Outlook.Items mapiNamespace = oApp.GetNamespace("MAPI") calendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar) calendarItems = calendarFolder.Items calendarItems.IncludeRecurrences = True 


Powerpoint


Mit PowerPoint können Sie nicht nur schöne Präsentationen erstellen, sondern diese auch für Papierkram wie kommerzielle Angebote oder regelmäßige Projektberichte verwenden. Dazu müssen Sie Daten aus anderen Quellen in PowerPoint anzeigen, und natürlich leistet der Roboter hervorragende Arbeit. Wenn Sie PowerPoint-Folien erstellen, müssen Sie sie meistens schön gestalten. Sie können dies also im Voraus tun und echte Daten ersetzen, indem Sie Vorlagenfolien kopieren und Texte durch diese ersetzen.
Microsoft.Office.Interop.Powerpoint und alle anderen Interop-Assemblys befinden sich im Repository nuget.org.
Folie duplizieren
Aufgrund der Tatsache, dass sich Presentation in System.Activities und Application befindet, müssen Sie in anderen Interops Klassennamen vollständig schreiben. fileName und slideToCopy - Argumente, Zeichenfolge bzw. Nummer.

 Dim app As New Microsoft.Office.Interop.PowerPoint.Application Dim pres As Microsoft.Office.Interop.PowerPoint.Presentation Dim newSlide As Microsoft.Office.Interop.PowerPoint.Slide pres = app.Presentations.Open(fileName) newSlide = pres.Slides(slideToCopy).Duplicate()(1) 


Durch die Shapes-Sammlung, die alle Elemente der Folie enthält, können Sie die erforderlichen Informationen auf einer neuen Seite schnell aktualisieren

Arbeite in Word


Obwohl die Aktivitäten im Word-Aktivitätenpaket grundlegende Word-Funktionen bieten, decken sie nicht die volle Funktionalität der Xceed DocX-Bibliothek ab, auf der sie basieren. Der häufigste Fall ist das Arbeiten mit Tabellen, aber es gibt viele andere Fälle.

Das Projekt-Repository enthält genügend verschiedene Beispiele, um zu verstehen, wo diese oder eine ähnliche Bibliothek nützlich sein wird.

Web-API (REST, SOAP)


REST / JSON ist jetzt wahrscheinlich die Schlüsselverbindung, um die Integration mit Systemen zu ermöglichen, die die API darstellen.

Unterstützung für REST, SOAP und JSON bietet das Web Activities Pack .
Mit REST ist alles ganz einfach, wie es sein sollte: HTTP Request -> Deserialize JSON und jetzt haben wir bereits ein JObject, mit dem wir tun können, was wir wollen. Um Daten an den Webdienst zu übertragen, gibt es einen praktischen Parametereditor.

Für SOAP ist die integrierte Funktionalität leider eingeschränkt, nicht alle Arten von Webdiensten werden unterstützt, nicht alle Anforderungen werden korrekt verarbeitet. Wenn der Dienst für Sie nicht funktioniert, müssen Sie einen der vielen Wrapper für HttpClient verwenden, z. B. SimpleSOAPClient, oder einen eigenen schreiben (eine Variante der Arbeit mit SOAP aus C # ).

UPDATE 04/03/19: In Version 2019.4, deren Beta bereits zum Download zur Verfügung steht, wird die Komponente aktualisiert, verbessert und überarbeitet. Sie können also sehr bald mit dem Auftreten einer normalen SOAP-Unterstützung rechnen

Arbeiten Sie mit FTP


Hier in UiPath ist alles einfach. In Community-Aktivitäten sind vorgefertigte Aktionen für FTP enthalten. Beachten Sie jedoch, dass ab Version 18.2 des FTP-Aktivitätenpakets der Status veraltet ist . Aber alle Funktionen sind vorhanden, sogar SFTP wird unterstützt (das Set basiert auf SSH.NET ), obwohl die Arbeit mit dem Client-Schlüssel leider nicht abgeschlossen wurde.

.

Datenbanken


UiPath arbeitet mit Datenbanken über den .NET-Datenprovider. Für MS SQL und MS Access ist alles einfach, für den Rest müssen Sie ODBC konfigurieren, und wenn es nicht vorhanden ist, installieren Sie den Treiber. Beachten Sie, dass wir derzeit den entsprechenden Treiber herunterladen müssen und die ODBC-Datenquelle identisch sein muss, da die Plattform derzeit 32-Bit ist.

Unten finden Sie ein Beispiel für die Arbeit mit MySQL.

Konfigurieren Sie die MySQL-Verbindung
Einstellungen der Test-Remote-MySQL-Datenbank (Treiber von hier ):

und verbinden Sie sich mit ihm von der Aktion


Weitere Arbeiten mit einer SQL-kompatiblen Datenbank sind Standard - wir stellen Abfragen, wir erhalten eine DataTable.

SAP über BAPI


Wenn Ihr SAP Ihnen diese Möglichkeit bietet, können Sie versuchen, anstatt über die Benutzeroberfläche zu arbeiten, die Integration mit SAP über das BAPI zu automatisieren. Wie immer ist UiPath dafür bereit
Eine Reihe von Aktionen , die einen Assistenten zum Konfigurieren einer Verbindung zu SAP enthalten. Hier gibt es fast keine Programmierung, aber dies ist ein Beispiel dafür, dass der Standardintegrationspfad nicht der einzig mögliche ist.

Abschließend


Ich hoffe, dass ich mit Hilfe dieses Artikels über die Aspekte des Einsatzes von Robotern sprechen konnte, die in der Akademie oder im Forum nicht so einfach zu erlernen sind. Ich würde mich freuen, wenn sich jemand für Fragen zur Entwicklung von Robotern interessiert oder diese beantwortet.

Source: https://habr.com/ru/post/de446092/


All Articles