Hier finden Sie eine umfassende Anleitung, wie Sie einen Auftrag in Skyplanner mit allen zugehörigen Daten erstellen. Einiges davon wurde bereits im Integrationstutorial behandelt, aber hier gehen wir die Skyplanner-Datenstruktur und den Integrationsprozess noch detaillierter durch.
Datenstruktur #
Zunächst werden wir uns ansehen, wie ein Skyplanner-Auftrag aufgebaut ist. Die API-Endpunkte für die hier erwähnten Dateneinheiten sind wie folgt hervorgehoben: /phaser-aufträge
Auf der obersten Ebene haben wir die Bestellung(/phaser-orders)
Jede Bestellung muss einen Kunden(/Kunden) haben.
Jeder Auftrag kann mehrere Auftragspositionen haben(/phaser-Order-items)
Jeder Auftragsposition kann ein Produkt(/products) angehängt werden, dies ist jedoch nicht zwingend erforderlich. Jedes Produkt hat einen Bestand(/saldos). Beachten Sie, dass die Entität Bestand automatisch erstellt wird, wenn ein Produkt über die API erstellt wird.
Jede Auftragsposition kann mehrere Aufträge (aka Prozessschritte) haben(/phaser-jobs).
Jeder Auftrag muss einen Arbeitstag haben(/workstages).
Arbeitsablauf der Integration #
Hier finden Sie ein Beispiel dafür, wie Sie Ihre Integration von Ihrem ERP-System zu Skyplanner Schritt für Schritt strukturieren können.
- Holen Sie Verkäufe/Arbeitsaufträge aus dem ERP
- Kunde anlegen (Kunden-ID in Antwort erhalten)
- Bestellung mit Kundennummer erstellen (Bestellnummer in Antwort erhalten)
- Abrufen von Daten zu Verkaufs-/Werkauftragspositionen aus dem ERP
- Produkt erstellen (Produkt-ID in Antwort erhalten)
- Auftragsposition mit Auftrags-ID und anderen Daten erstellen (Auftragspositions-ID in Antwort erhalten)
- Abrufen von Prozessschrittdaten aus dem ERP
- Workstage erstellen (Workstage-ID in Antwort erhalten)
- Auftrag mit Workstage-ID und anderen Daten erstellen
Extra Tipps #
Beim Löschen #
Das Löschen von phaser-orders, phaser-Order-items oder phaser-jobs über die API (und von der Benutzeroberfläche aus) erfolgt in Form eines weichen Löschvorgangs. Das bedeutet, dass die Daten nicht wirklich aus der Datenbank gelöscht werden, sondern als archiviert markiert werden. Das Attribut is_archive der Entität wird auf true gesetzt, wenn sie gelöscht wird. Auf die archivierten/gelöschten Entitäten kann mit Hilfe des Parameters include_archived weiterhin über die API zugegriffen werden. Wenn include_archived=true ist, wird eine GET-Anfrage die Entität abrufen, auch wenn sie archiviert ist.
Beachten Sie, dass das sanfte Löschen nicht in jedem API-Endpunkt verfügbar ist! Seien Sie also vorsichtig, denn das Löschen von z.B. Kunden, Personen usw. ist dauerhaft!
Standardprozessschritte für Ihre Auftragsposition verwenden #
Wenn Sie für das Produkt, das Ihre Auftragsposition herstellt, einige Standardprozessschritte erstellt haben, können Sie dem System über die API mit dem Attribut get_default_steps mitteilen, dass es die Standardschritte in die Auftragsposition übernehmen soll.
Hinzufügen von Materialien zur Auftragsposition #
Wenn Sie Materialien an das produzierte Produkt angehängt haben, werden diese automatisch an die Auftragszeile angehängt.
Wenn Sie jedoch nicht die dem Produkt beigefügten Materialien verwenden möchten (z.B. wenn es sich bei dem Artikel um eine Sonderbestellung handelt und Sie andere Materialien verwenden möchten usw.), können Sie das Attribut use_custom_materials verwenden.