# Robotic Process Automation

Robotic Process Automation (RPA, deutsch: Robotergestützte Prozessautomatisierung) ist ein Ansatz zur Prozessautomatisierung, bei dem repetitive, manuelle, zeitintensive oder fehleranfällige Tätigkeiten durch sogenannte Softwareroboter (Bots) erlernt und automatisiert ausgeführt werden.
Je nach verwendeter RPA-Plattform können die notwendigen Schritte mit modellgetriebenen oder selbstlernenden Ansätzen aufgezeichnet werden. RPA vereint die Modellierung von Abläufen, Skripting und Job-Scheduling.
Robotic Process Automation wird häufig im Kontext von Business Process Management (BPM) Initativen eingesetzt. Während RPA die manuellen Schritte digitalisiert, ändert traditionelles BPM die Ebene der Geschäftslogik.

## Softwareroboter

Softwareroboter sind Anwendungen, die eine menschliche Interaktion mit Benutzerschnittstellen von Softwaresystemen nachahmen können. Dabei arbeiten Softwareroboter auf der Ebene der grafischen Benutzeroberfläche in einer Art und Weise, wie es ein Mensch tun würde. Bereits vorhandene Anwendungssysteme, beispielsweise aus den Bereichen Enterprise Resource Management oder Customer Relationship Management, müssen nicht angepasst werden. Der Roboter arbeitet nach festgelegten Regeln als virtuelle Arbeitskraft mit eigenen Lese- und Schreibrechten.

## Geschichte

Ein Nachteil der traditionellen Geschäftsprozessautomatisierung ist die Entstehung teilweise komplexer IT-Landschaften die bei der Integration einen hohen personellen Aufwand und damit verbundenen Kosten erfordern. Mitarbeiter wurden teilweise ineffizienter als vor der Automatisierung. Erste wesentliche Elemente der robotergestützten Prozessautomatisierung wurden Anfang der 2000er Jahre entwickelt und übernahmen einfache Arbeiten wie den Datenübertrag von einer Anwendung zu einer anderen mittels Screen Scraping. Um das Jahr 2012, im Nachgang der Finanzkrise 2007, stieg durch verstärkten Kostendruck der Bedarf an Möglichkeiten zur Übernahme komplexerer Tätigkeiten und Entwicklung dieser.

## Charakteristiken von RPA-Anwendungen
### Programmierung

RPA-Plattformen modellieren Prozesse abstrakt in einzelnen Schritten (häufig als "Step" oder "Task" bezeichnet). Viele Plattformen bedienen sich der Technik von Flussdiagrammen oder anderen Entscheidungsbäumen, um so eine grafische Prozessmodellierung mittels Drag&Drop zu ermöglichen. Als solches können sie als No-Code- oder Low-Code-Plattform klassifiziert werden.
Prozessschritte greifen auf wiederverwendbare Bausteine aus Bibliotheken zurück, so dass keine Programmierung zur Steuerung von Systemkomponenten notwendig ist. So gibt es in RPA-Plattformen zum Beispiel häufig bereits Module zur Steuerung von Webbrowsern oder zur Interaktion mit Desktop-Software wie Microsoft Excel.
Die abstrahierte Ablauflogik wird in der Regel innerhalb der RPA-Software in eine Skriptsprache übersetzt.

#### Beispiel (Robot Framework)

Im folgenden Beispiel wird mit Hilfe von Robot Framework ein Prozessablauf abstrahiert (im Abschnitt Tasks Zeile 6–8). Die Abstraktion geschieht hier nicht über Visualisierungstools, sondern über menschenlesbare textuelle Prozessbeschreibung. Ein Task setzt sich hier aus sogenannten Keywords zusammen. Die bereits vorimplementierten Keywords sind hier in Englisch und werden in Zeile 2 importiert. Zum besseren Verständnis baut ein RPA-Entwickler daraus eigene Keywords, die der Fachsprache des Prozesses entsprechen (Abschnitt Keywords, Zeile 10 ff.). Das Prozessmodell wird hier zwar in Python übersetzt, der RPA-Entwickler muss zur Modellierung aber kein Pythonprogrammierer sein, sondern braucht nur rudimentäre Programmierkenntnisse.

### Ausrichtung auf Endnutzer

Viele kommerzielle RPA-Applikationen haben sich auf die Nutzung durch Endnutzer ausgerichtet.