Daten automatisiert einspielen
Diese Methode sollte nur eingesetzt werden, wenn eine Steuerung über documents nicht möglich ist oder ausschließlich zu Testzwecken erforderlich ist.
In dieser Anleitung erfahren Sie, wie Sie
- Daten von SAP in Ihre Datenbank (z.B. Stammdatenabrufe) oder
- Buchungsvorgänge in SAP (z.B. Rechnungsbuchungen)
mithilfe des SAP REST Connectors und Skripten automatisieren.
Dabei wird beschrieben, wie POST-Requests an den Webservers des SAP REST Connectors gesendet werden, um die Erstellung von Tasks (Stammdatenabrufe, Rechnungsbuchungen, etc.) zu automatisieren. Die Anleitung umfasst sowohl die Implementierung unter Windows mit PowerShell und dem Task Scheduler als auch unter Linux mit Bash-Skripten und Cron-Jobs.
Die verwendete Route "Task erzeugen" wird anschließend ausführlich hier beschriben.
1. POST-Body vorbereiten
Die Datei post-body.json enthält die POST-Body Daten die dann an den Webservers des SAP REST Connectors gesendet werden und muss entsprechend angepasst werden. Sie befindet sich im selben Verzeichnis wie die ausführbare Datei des Webservers (sap-public-cloud-connector.exe oder sap-public-cloud-connector). Eine detaillierte Anleitung zur Anpassung der POST-Body Daten ist hier verfügbar.
2. Automatisierung unter Windows – PowerShell und Task Scheduler
PowerShell-Skript
Die Dateien request-execution.ps1 und post-body.json befinden sich im selben Verzeichnis wie die ausführbare Datei des Webservers.
Das Skript request-execution.ps1 liest den Inhalt der Datei post-body.json ein und verwendet diesen als POST-Body.
Zusätzlich steht das Skript sequential-request-execution.ps1 zur Verfügung. Es funktioniert wie folgt:
- Liest den Inhalt von
post-body-1.jsonein und sendet ihn als POST-Body. - Fragt im 5‑Sekunden‑Takt den Status dieses Tasks ab, bis er abgeschlossen ist.
- Lädt anschließend
post-body-2.json, sendet dessen Inhalt als POST-Body und überwacht erneut im 5‑Sekunden‑Takt den Task-Status. - Bei einem Fehler wird die Fehlermeldung direkt ausgegeben.
Diese Skripte können bei Bedarf angepasst und erweitert werden, um beispielsweise zusätzliche post-body-<n>.json-Dateien zu verarbeiten und individuelle Anforderungen abzudecken.
Einrichtung im Windows Task Scheduler
Um das PowerShell-Skript automatisch auszuführen, richten Sie eine geplante Aufgabe im Windows Task Scheduler wie folgt ein:
-
Öffnen Sie den Windows Task Scheduler (Aufgabenplanung).
-
Klicken Sie auf Aktion > Aufgabe erstellen.
-
Vergeben Sie einen Namen für die Aufgabe (z. B. „Automatisierter POST-Request“).
-
Unter Trigger fügen Sie über Neu einen neuen Triger hinzu und wählen dann Täglich und stellen die gewünschte Uhrzeit ein (z. B. Mitternacht) und bestätigen mit OK.
-
Unter Aktionen wählen Sie Neu und konfigurieren die folgenden Einstellungen:
- Programm starten:
powershell.exe - Argumente hinzufügen:
-ExecutionPolicy Bypass -File "C:\Pfad\zu\deinem\request-execution.ps1"- Bestätigen Sie mit OK
- Programm starten:
-
Speichern Sie die Aufgabe mit OK.
Der Task Scheduler führt das PowerShell-Skript nun automatisch zur eingestellten Zeit aus und sendet den POST-Request.
3. Automatisierung unter Linux – Bash-Skript und Cron
Bash-Skript
Die Dateien request-execution.sh und post-body.json befinden sich im selben Verzeichnis wie die ausführbare Datei des Webservers.
Das Skript request-execution.sh liest den Inhalt der Datei post-body.json ein und verwendet diesen als POST-Body.
Zusätzlich steht das Skript sequential-request-execution.sh zur Verfügung. Es funktioniert wie folgt:
- Liest den Inhalt von
post-body-1.jsonein und sendet ihn als POST-Body. - Fragt im 5‑Sekunden‑Takt den Status dieses Tasks ab, bis er abgeschlossen ist.
- Lädt anschließend
post-body-2.json, sendet dessen Inhalt als POST-Body und überwacht erneut im 5‑Sekunden‑Takt den Task-Status. - Bei einem Fehler wird die Fehlermeldung direkt ausgegeben.
Diese Skripte können bei Bedarf angepasst und erweitert werden, um beispielsweise zusätzliche post-body-<n>.json-Dateien zu verarbeiten und individuelle Anforderungen abzudecken.
Um das Skript ausführbar zu machen, navigieren Sie zuerst in das Verzeichnis, in dem sich die Datei befindet, und verwenden dann folgenden Befehl:
chmod +x request-execution.sh
Einrichtung eines Cron-Jobs
Um das Skript automatisch auszuführen, richten Sie einen Cron-Job ein:
-
Öffnen Sie den Crontab zur Bearbeitung:
crontab -e -
Fügen Sie eine neue Zeile hinzu, um das Skript täglich um Mitternacht auszuführen:
0 0 * * * /pfad/zu/deinem/skript/request-execution.sh -
Speichern Sie und schließen Sie den Crontab.
Für individuelle Einstellungen können Sie beispielsweise dieses Tool nutzen, um eine passende Cron-Expression zu erstellen, die Sie dann kopieren können.
Der Cron-Job sorgt nun dafür, dass das Bash-Skript automatisch zur eingestellten Zeit ausgeführt und der POST-Request gesendet wird.