Für Kunden der Software "Easyjob" (https://www.protonic-software.com/de/home/) bietet CrewBrain eine automatisierte Schnittstelle, über die Auftragsdaten automatisch nach CrewBrain übertragen werden können. Zusammen mit der Firma Mines-Service (https://www.minesservice.de/minesmodules-crewbrain-api) haben wir eine Schnittstelle zwischen Easyjob und CrewBrain gebaut.
Um die Synchronisation zu aktivieren ist zunächst die Angabe der URL notwendig, unter der die Easyjob-Instanz erreichbar ist. Anschließend kann sich ein Benutzer mit seinen Easyjob-Zugangsdaten anmelden. Es kann sinnvoll sein, hierfür einen technischen Benutzer anzulegen, dieser sollte über volle Zugriffsrechte für Projekte aller Standorte verfügen, da in der Easyjob-API derzeit nicht nach Standort gefiltert werden kann.
Easyjob wird üblicherweise lokal gehostet. Damit CrewBrain auf die Daten in Easyjob zugreifen kann ist es daher notwendig, dass der Server von außen per URL oder IP erreichbar ist. Hierfür sind in der Regel Firewall-Freischaltungen und Port-Weiterleitungen im lokalen Netzwerk notwendig. Erst wenn der Zugriff auf die API von außen möglich ist, können die Daten von CrewBrain abgerufen werden.
Die erste Frage ist: auf welchem Port läuft die API? Standardmäßig ist es bei Easyjob der Port 8008, das lässt sich in den Easyjob-Einstellungen aber auch ändern. Am besten macht man direkt auf dem Rechner, auf dem der Easyjob-Server läuft, einen Browser auf und gibt dort folgendes in die Adresszeile ein:
http://localhost:8008/api.json/Common/GetGlobalWebSettings
Da sollte Easyjob mit einer Liste der globalen Einstellungen antworten, dieser Endpunkt ist auch ohne Anmeldung erreichbar. Wenn keine Antwort kommt, dann stimmt der Port nicht und muss ggf. angepasst werden.
Wenn das klappt, geht man an einen anderen PC im lokalen Netzwerk und öffnet wieder einen Browser, gibt diesmal aber statt „localhost“ die IP-Adresse des Easyjob-Servers an. Auch das sollte dann funktionieren.
Jetzt kommt der eigentliche Schritt der Portfreigabe in der Firewall oder im Router. Sobald diese eingerichtet ist, kann man (am besten über einen PC oder ein Handy außerhalb eures lokalen Netzwerks) versuchen, die öffentliche IP (oder die Dyn-DNS-Adresse) anstelle von „localhost“ in die URL einzutragen. Sobald auch damit entweder die Fehlermeldung oder die Liste der Mandanten bekommt, sollte alles bereit sein und die Adresse kann in CrewBrain eingetragen werden.
Sicherheit bei der Portfreigabe: Durch die Portfreigabe wird die Easyjob-API im Internet öffentlich freigebeben. Aus diesem Grund macht es Sinn, die Freigabe auf bestimmte IPs - in dem Fall die IPs unseres Produktions- und unseres Standby-Servers - einzuschränken.
Wenn der API-Abruf funktioniert und der Benutzer angemeldet ist, bietet die Synchronisation verschiedene Konfigurationsmöglichkeiten, um die Projekte sauber aus Easyjob zu übertragen.
Über die Easyjob-API können maximal 50 Projekte für einen Kalendertag abgerufen werden. Dies beinhaltet auch Langzeitprojekte und Dauermieten. Sofern hin und wieder mehr als 50 Projekte an einem Tag durchgeführt werden, muss die Easyjob-Projektliste daher auf dem Server erzeugt und an CrewBrain übertragen werden.
Andernfalls kann bei MinesService auch nach einem entsprechenden Plug-In gefragt werden. Mit diesem Plug-In können dann die Jobs, die nach CrewBrain synchronisiert werden sollen manuell angeklickt werden und das Übertragen von mehr als 50 Projekten pro Tag ist somit möglich.
Mithilfe von PowerShell kann die entsprechende Projektliste direkt auf dem Easyjob-Server erzeugt werden. Der Servername und Pfad sind ggf. anzupassen.
sqlcmd -S easyjob-server\easyjob6 -U sa -P _easyjob6P@ssW0rd_ -Q "select IdProject from easyjob.dbo.project where startdate > GETDATE()" -o "C:\users\...\export.csv" -W -w 1024 -s ";" -h-1
Hierbei müssen Werte wie easyjob-server\easyjob6, ggf. das Passwort und der Pfad (C:\users\...\export.csv) an die lokalen Gegebenheiten angepasst werden.
Das Hochladen der Projektliste kann entweder manuell erfolgen, oder mit dem folgendem PowerShell-Befehl ebenfalls automatisiert werden.
Invoke-RestMethod -Uri 'http://testfirma.crewbrain.test/easyupload' -Method Post -InFile 'C:\users\...\export.csv'
Hierbei muss die URL (Subdomain) und der Pfad der Datei an die eigenen Gegebenheiten angepasst werden.
Über das Mapping können Ressourcen-Funktionen, Status und weitere Daten zwischen Easyjob und CrewBrain zugeordnet werden. Das Mapping ist essentiell, damit die Jobs und Ressourcen überhaupt übertragen werden.
Die Termin-Status können nach einem Abruf der in Easyjob konfigurierten Status gemappt werden. Hierbei kann angegeben werden, welche Projekte mit welchem Status überhaupt übernommen werden sollen, und welcher Status ihnen in CrewBrain zugeordnet sein soll.
Unter dem Punkt "Ressourcen-Funktionen" wird das Mapping der Easyjob-Ressourcen zu den CrewBrain-Kategorien (z.B. Tontechniker, Lichttechniker, etc.) vorgenommen. Zunächst können über den Button "Easyjob-Funktionen abrufen" die Ressourcen-Funktionen abgerufen werden. Anschließend kann für jede Funktion definiert werden, ob sie synchronisiert werden soll und wenn ja, welche CrewBrain-Kategorie dafür verwendet werden soll.
In Easyjob geplante Ressourcen (Mitarbeiter und Fahrzeuge) werden, sofern sie in Easyjob im Projekt bereits geplant sind, vollständig nach CrewBrain übernommen (Workflow: ein Test-Projekt in Easyjob anlegen, das alle Ressourcen enthält). Hierbei versucht die Synchronisationlogik, bereits bestehende Datensätze zu erkennen und automatisch zu Mappen. Datensätze (Mitarbeiter und Fahrzeuge) die noch nicht in CrewBrain bestehen, werden automatisch durch die Synchronisation in CrewBrain angelegt.
Die Übernahme von Kunden & Locations erfolgt automatisch, sobald sie in einem Job oder Projekt benötigt werden.
Der Synchronisationsprozess läuft automatisch alle 2-3 Stunden und hält die Daten somit immer aktuell. Zudem gibt es in CrewBrain in den Kalender-Ansichten oben ein Synchronisations-Symbol, über welches der Prozess auch manuell (für den gesamten Datenbestand) gestartet werden kann. Dies ist zum Beispiel dann sinnvoll, wenn gerade ein neuer Auftrag im Quellsystem erstellt wurde.
Zusätzlich zu dieser Möglichkeit, den Sync-Prozess zu starten gibt es das selbe Icon auch in allen synchronisierten Jobs. Dort kann über ein Menü entweder die Synchronisation für diesen einen Job angestoßen oder die Synchronisation für diesen Job bzw. dieses Projekt pausiert werden.
Wird die Synchronisation in einem Job oder Projekt über das Kontextmenü pausiert, werden keine Änderungen mehr aus Epirent übernommen. Das ist insbesondere dann hilfreich, wenn manuell Änderungen in CrewBrain vorgenommen werden, die nicht mehr zu den ursprünglich aus Epirent übertragenen Daten passen.