REST API V8 Reference - PlantX ERP & Accounting

Lizenzbedingung

Die Nutzung der Q Exchange API und dieser Dokumentation unterliegt den API Nutzungsbedingungen, welche Sie hier einsehen können. Copyright Q Point AG (2024) – Alle Rechte vorbehalten.

 

Die PlantX ERP & Accounting API ist die Schnittstelle zwischen Buchhaltungs- bzw. ERP-Systemen und Q Plant. Über sie können folgende Daten in Q Plant verwaltet werden.

Übersicht

Technischen Informationen zur API

 

GET https://[RootUrl]/apiinfos

Liefert technische Informationen zur API.

Artikel Stammdaten

PUT  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Neuen Artikel anlegen oder bestehenden aktualisieren.

PATCH  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Partielle Aktualisierung eines bestimmten Artikels.

GET  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Einzelnen Artikel nach ID abfragen.

GET   https://[BaseUrl]/plants/{plantId}/articles?identifier={string}

Alle oder bestimmte Artikel abfragen.

DELETE  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Einzelnen Artikel löschen.

Werksübergreifende Artikel Stammdaten

PUT  https://[BaseUrl]/universalArticles/{universalArticleId}

Neuen werksübergreifenden Artikel anlegen oder bestehenden aktualisieren.

GET  https://[BaseUrl]/universalArticles/{universalArticleId}

Einzelnen werksübergreifenden Artikel nach ID abfragen.

GET   https://[BaseUrl]/universalArticles?identifier={string}

Alle oder bestimmte werksübergreifende Artikel abfragen.

DELETE  https://[BaseUrl]/universalArticles/{articleId}

Einzelnen werksübergreifenden Artikel löschen.

Kunden Stammdaten

PUT  https://[BaseUrl]/customers/{customerId}

PUT  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Neuen Kunden anlegen oder bestehenden aktualisieren.

PATCH  https://[BaseUrl]/customers/{customerId}

PATCH  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Partielle Aktualisierung eines bestimmten Kunden.

GET  https://[BaseUrl]/customers/{customerId}

GET  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Einzelnen Kunden nach ID abfragen.

GET  https://[BaseUrl]/customers?identifier={string}

GET  https://[BaseUrl]/plants/{plantId}/customers?identifier={string}

Alle oder bestimmte Kunden abfragen.

DELETE  https://[BaseUrl]/customers/{customerId}

DELETE  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Einzelnen Kunden löschen.

Baustellen Stammdaten

PUT  https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PUT  https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites/{constructionSiteId}

Neue Baustelle anlegen oder bestehenden aktualisieren.

PATCH  https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PATCH  https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites/{constructionSiteId}

Partielle Aktualisierung einer bestimmten Baustelle.

GET  https://[BaseUrl]/customers/{customerId}/constructionsites

GET  https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites

Alle oder geänderte Baustellen eines bestimmten Kunden abfragen.

GET  https://[BaseUrl]/constructionsites/{constructionSiteId}

GET  https://[BaseUrl]/plants/{plantId}/constructionsites/{constructionSiteId}

Einzelne Baustelle nach ID abfragen.

GET  https://[BaseUrl]/constructionsites

GET  https://[BaseUrl]/plants/{plantId}/constructionsites

Alle oder geänderte Baustellen abfragen.

DELETE  https://[BaseUrl]/constructionsites/{constructionSiteId}

DELETE  https://[BaseUrl]/plants/{plantId}/constructionsites/{constructionSiteId}

Einzelne Baustelle löschen.

Rechnungen

POST  https://[BaseUrl]/invoices

POST  https://[BaseUrl]]/masterdatasets/{masterdatasetId}/invoices

Neue Rechnung hinzufügen.

PUT  https://[BaseUrl]/invoices/{invoiceId}

PUT  https://[BaseUrl]]/masterdatasets/{masterdatasetId}/invoices/{invoiceId}

Rechnung übermitteln oder aktualisieren.

DELETE  https://[BaseUrl]/invoices/{invoiceId}

DELETE  https://[BaseUrl]]/masterdatasets/{masterdatasetId}/invoices/{invoiceId}

Einzelne Rechnung löschen.

Aufträge

PUT  https://[BaseUrl]/contracts/{contractId}

Neuer Auftrag anlegen oder bestehenden aktualisieren.

GET  https://[BaseUrl]/contracts/{contractId}

Einzelnen Auftrag nach ID abfragen.

GET   https://[BaseUrl]/contracts?identifier={string}

Alle oder bestimmten Auftrag abfragen.

DELETE  https://[BaseUrl]/contracts/{contractId}

Einzelnen Auftrag löschen.


URL's

API Root URL [RootUrl]

Hierbei handelt es sich um die Basis URL des PlantX API's der spezifischen Q Plant Kundeninstanz. Die einzelnen Kunden unterscheiden sich jeweils durch ihre Subdomain. Die von Ihnen benötigte Cluster Base URL erhalten Sie zusammen mit dem Access-Key vom Q Point Support.

Sie lautet beispielsweise: https://asphaltag-api.q-plant.com

 

API Base URL [BaseUrl]

Hierbei handelt es sich um die Basis-URL, welche zum eigentlichen Aufruf der einzelnen Methoden verwendet wird. Sie basiert auf der Root-URL und erweitert diese durch den Bezug zu einer bestimmten API-Version. Die von Ihnen benötigte Base URL erhalten Sie zusammen mit dem Access-Key vom Q Point Support.

Sie lautet beispielsweise: https://asphaltag-api.q-plant.com/v8/


API Key

Für den Zugriff auf die in dem Dokument angeführten Endpunkte des API’s ist ein API-Key mit der Key-Role "plantXAccountRole" notwendig.


Technische Informationen zur API

GET  https://[RootUrl]/apiinfos

GET  https://[RootUrl]/apiinfos

Eine GET-Abfrage auf die API Root-Url liefert technische Informationen zur API. Aktuell handelt es sich hierbei um eine Liste der unterstützten API-Versionen. Ein Server kann gleichzeitig mehrere unterschiedliche Versionen des API unterstützen. Client-Systeme können hiermit zur Laufzeit prüfen, ob der angesprochene Server die benötigte Version des API anbietet.

Response

  • 200 - OK

Response Body
Response Body
{ "supportedApiVersions": [ { "version": "v7", "isDeprecated": false }, { "version": "v6", "isDeprecated": true } ] //... }

Response Body(supportedApiVersions)

version
string(40)
required

Einzelne vom Cluster bzw. Server unterstützten API Versionen (Bsp: "v2").

isDeprecated
boolean
default: false

Die angegebene Version ist veraltet und wird in absehbarer Zeit nicht mehr unterstützt. Dieser Hinweis ermöglicht abhängigen Systemen, dem Anwender einen entsprechenden Hinweis anzuzeigen und ihn darauf hinzuweisen, dass ein Update des Systems notwendig ist.


Artikel-Stammdaten

Diese Ressource repräsentiert das Artikel-Verzeichnis des Mischgut-Anbieters. Ein Artikel entspricht in der Regel einer verkaufsfähigen Ware. In unserem Umfeld ist dies im Allgemeinen ein bestimmtes Mischgut wie beispielsweise "AC T 22 N B 700/100". 

  • Bei Artikeln, welche von einem Drittsystem übermittelt und in Q Plant angelegt werden, liegt die Datenhoheit anschliessend bei dem Drittsystem. Innerhalb von Q Plant lassen sich solche Datensätze deshalb nur begrenzt mutieren. Es gelten die folgenden Einschränkungen: 

    • Die Pflichtfelder der Artikel sind read-only und lassen sich damit in Q Plant nicht verändern.

    • Die Artikel lassen sich in Q Plant nicht löschen bzw. in den Papierkorb verschieben. Daneben besteht auch keine Möglichkeit, Artikeldatensätze, welche durch das Drittsystem gelöscht und in den Papierkorb verschoben wurden, in Q Plant wiederherzustellen oder endgültig zu löschen.

    • Es besteht keine Möglichkeit, Artikeldatensätze über einen Excel-Import in Q Plant zu verändern.

  • Abhängig von der System-Konfiguration des jeweiligen Q Plant Kundenprojektes, ist das Anlegen neuer Artikel erlaubt oder gesperrt. In jedem Fall handelt es sich hierbei jedoch um sogenannte "autonome Artikeldatensätze". Diese sind für Drittsysteme transparent und lassen sich über das API weder abfragen noch verändern.

Neuen Artikel anlegen oder bestehenden Artikel aktualisieren

PUT  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

PUT  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Aktualisiert den adressierten Artikel oder legt diesen neu an, falls noch kein Datensatz mit dieser ID existiert.

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

articleId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten Artikels.

Request Body (articles)

identifier
string(100)
required

Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung der Materialkomponente für die Anzeige. Wird für die Darstellung im UI verwendet.

universalArticleId
UUID

Zuordnung dieses werksbezogenen Artikels zum universellen Artikel. NULL, falls der Artikel nur auf dem Werk existiert und keinen Bezug zu einem übergeordneten bzw. universellen Artikel besitzt.

articleGroupIdentifier
string(100)

Kennung der Artikelgruppe zu welcher der Artikel gehört.

unit
string(40)
required

Masseinheiten-Kurzzeichen, in welcher der Artikel abgegeben und verkauft wird.

initialInspectionIdentifier
string(100)

Bezeichnung bzw. Nummer der Erstprüfung.

initialInspectionExpiryDate
date

Verfallsdatum der Erstprüfung.

minLoadingTemperature
integer

Minimale Beladetemperatur des Mischguts.

maxLoadingTemperature
integer

Maximale Beladetemperatur des Mischguts.

temperatureUnit
string(40)

Masseinheiten-Kurzzeichen der Temperaturwerte.

compactedDensity
decimal(10,3)

Raumdichte des Mischguts.

compactedDensityUnit
string(40)

Masseinheit der Raumdichte (In der Regel g/cm3).

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikel.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

  • 201 - Created Falls der Datensatz neue angelegt wurde.

Response Body (articles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben wie sie in Q Plant aktuell gespeichert sind.


Partielle Aktualisierung eines bestimmten Artikels

PATCH  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

PATCH  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Aktualisiert die spezifizierten Attribute des adressierten Artikels. Siehe auch: https://q-point.atlassian.net/wiki/spaces/PUB/pages/1781202973/REST+Grundlagen+von+Q+Exchange#Hinweise-zur-PATCH-Methode

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

articleId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten Artikels.

 

Request Body (articles)

name
string(100)
required

replace
Änderung des Namens sind nur für Artikel ohne globalen Bezug (universalArtcleId == NULL) zulässig.

Bezeichnung der Materialkomponente für die Anzeige. Wird für die Darstellung im UI verwendet.

universalArticleId
UUID

replace, remove

Zuordnung dieses werksbezogenen Artikels zum universellen Artikel. NULL, falls der Artikel nur auf dem Werk existiert und keinen Bezug zu einem übergeordneten bzw. universellen Artikel besitzt.

articleGroupIdentifier
string(100)

replace, remove

Kennung der Artikelgruppe zu welcher der Artikel gehört.

unit
string(40)
required

replace

Masseinheiten-Kurzzeichen, in welcher der Artikel abgegeben und verkauft wird.

initialInspectionIdentifier
string(100)

replace, remove

Bezeichnung bzw. Nummer der Erstprüfung.

initialInspectionExpiryDate
date

replace, remove

Verfallsdatum der Erstprüfung.

minLoadingTemperature
integer

replace, remove

Minimale Beladetemperatur des Mischguts.

maxLoadingTemperature
integer

replace, remove

Maximale Beladetemperatur des Mischguts.

temperatureUnit
string(40)

replace, remove

Masseinheiten-Kurzzeichen der Temperaturwerte.

compactedDensity
decimal(10,3)

replace, remove

Raumdichte des Mischguts.

compactedDensityUnit
string(40)

replace, remove

Masseinheit der Raumdichte (In der Regel g/cm3).

annotation
string(1000)

replace, remove

Fakultative Anmerkungen oder interne Hinweise zu dem Artikel.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

Response Body

Als Antwort liefert der Endpunkt sowohl die Original-Entität vor dem Patch, als auch das entsprechende Ergebnis des Patch zurück.

{ "original": { "id": "5302ded3-707c-4d49-9877-177da54f3450", "identifier": "10003", "name": "AC 32 T N, B 50/70, RC", ... }, "patched": { "id": "5302ded3-707c-4d49-9877-177da54f3450", "identifier": "10003", "name": "AC 32 T N, B 50/70, RC", ... } }

Mögliche Fehler

404 - Not Found Falls die adressierte Ressource nicht existiert.

Falsch formatiertes Patch-Dokument.

Das im Body übermittelte Patch-Dokument ist falsch formatiert oder enthält unzulässige Operationen.

400 - Bad Request

Attribute

Value

errorIdentifier

InvalidParameterValue

errorMessage

[Diverse]

reason

[Diverse]


Einzelnen Artikel nach ID abfragen

GET  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

GET  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Liefert den Artikel mit der angegebenen ID (UUID)

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

articleId
UUID
required

Systemübergreifend eindeutige ID (UUID) des abgefragten Artikels.

Response

  • 200 - OK

Response Body (articles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung der Materialkomponente für die Anzeige. Wird für die Darstellung im UI verwendet.

universalArticleId
UUID

Zuordnung dieses werksbezogenen Artikels zum universellen Artikel. NULL, falls der Artikel nur auf dem Werk existiert und keinen Bezug zu einem übergeordneten bzw. universellen Artikel besitzt.

articleGroupIdentifier
string(100)

Kennung der Artikelgruppe zu welcher der Artikel gehört.

unit
string(40)
required

Masseinheiten-Kurzzeichen, in welcher der Artikel abgegeben und verkauft wird.

initialInspectionIdentifier
string(100)

Bezeichnung bzw. Nummer der Erstprüfung.

initialInspectionExpiryDate
date

Verfallsdatum der Erstprüfung.

minLoadingTemperature
integer

Minimale Beladetemperatur des Mischguts.

maxLoadingTemperature
integer

Maximale Beladetemperatur des Mischguts.

temperatureUnit
string(40)

Masseinheiten-Kurzzeichen der Temperaturwerte.

compactedDensity
decimal(10,3)

Raumdichte des Mischguts.

compactedDensityUnit
string(40)

Masseinheit der Raumdichte (In der Regel g/cm3).

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikel.

deleted
boolean

Der Datensatz wurde aus dem Stamm gelöscht.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Alle oder bestimmte Artikel abfragen

GET  https://[BaseUrl]/plants/{plantId}/articles?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/plants/{plantId}/articles?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

Die Methode bietet die folgenden Abfragemöglichkeiten:

  • Abfragen des gesamten Artikelstamms mit allen Datensätzen.

  • Abfrage eines Artikels mit einer vorgegebenen Kennung.

  • Abfragen einer Liste derjenigen Artikel, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden.

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurück gelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem default-Wert liegt, liefert die Anfragen maximal die als "default" festgelegte Anzahl Datensätze!

identifier
string(100)

Kennung zur Suche nach einem bestimmten Artikel.

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze, d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.
'onlyPending': Ausschliesslich Datensätze, die in Q Plant neu angelegt wurden und durch das ERP System, welches die Datenhoheit besitzt, zu vervollständigen (bspw: Kennung) sind.

Response

  • 200 - OK

Response Body
Response Body
{ "pagination": { "offset": 0, "count": 50, "total": 465, "hasMoreEntries": true, "changedTillDt": "2020-03-24T14:33:23" }, "items": [ //... ] }

Response Body (articles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung der Materialkomponente für die Anzeige. Wird für die Darstellung im UI verwendet.

universalArticleId
UUID

Zuordnung dieses werksbezogenen Artikels zum universellen Artikel. NULL, falls der Artikel nur auf dem Werk existiert und keinen Bezug zu einem übergeordneten bzw. universellen Artikel besitzt.

articleGroupIdentifier
string(100)

Kennung der Artikelgruppe zu welcher der Artikel gehört.

unit
string(40)
required

Masseinheiten-Kurzzeichen, in welcher der Artikel abgegeben und verkauft wird.

initialInspectionIdentifier
string(100)

Bezeichnung bzw. Nummer der Erstprüfung.

initialInspectionExpiryDate
date

Verfallsdatum der Erstprüfung.

minLoadingTemperature
integer

Minimale Beladetemperatur des Mischguts.

maxLoadingTemperature
integer

Maximale Beladetemperatur des Mischguts.

temperatureUnit
string(40)

Masseinheiten-Kurzzeichen der Temperaturwerte.

compactedDensity
decimal(10,3)

Raumdichte des Mischguts.

compactedDensityUnit
string(40)

Masseinheit der Raumdichte (In der Regel g/cm3).

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikel.

deleted
boolean

Der Datensatz wurde aus dem Stamm gelöscht.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Einzelnen Artikel löschen

DELETE  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

DELETE  https://[BaseUrl]/plants/{plantId}/articles/{articleId}

Löscht den adressierten Artikel

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

articleId
UUID
required

Global eindeutige ID (UUID) des zu löschenden Artikels.

Response

  • 200 - OK Die andressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID nicht existiert.

 


Werksübergreifenden Artikel Stammdaten

Diese Ressource repräsentiert werksübergreifenden Artikelinformationen. Während kleinere Mischgutanbieter mit einem oder wenigen Mischwerken eher eine dezentrale Artikelverwaltung pro Mischwerk betreiben, ist dies bei grossen Unternehmen mit einer Vielzahl von Mischwerken meist zentral organisiert. Zentral bedeutet in diesem Zusammenhang, dass die Artikel mit einem einzelnen Warenwirtschaftssystem synchronisiert werden und alle angeschlossenen Mischwerke einheitliche Artikeldaten verwenden. Dezentral hingegen bedeutet, dass jedes einzelne Mischwerk jeweils eigene Artikeldaten besitzen.

Die Entität "universalArticles" ermöglicht es, mischwerksspezifische Artikelstammdaten ("articles") bei Bedarf zusammenzufassen und werksübergreifend darzustellen. "universalArticles" repräsentiert in diesem Kontext ausschliesslich die werksübergreifenden Artikelbezeichnungen und Kennungen.

Neuen werksübergreifenden Artikel anlegen oder bestehenden Artikel aktualisieren

PUT  https://[BaseUrl]/universalArticles/{universalArticleId}

PUT  https://[BaseUrl]/universalArticles/{universalArticleId}

Aktualisiert den adressierten werksübergreifenden Artikel oder legt diesen neu an, falls noch kein Datensatz mit dieser ID existiert.

Path Params

universalarticleId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten werksübergreifenden Artikels.

Request Body (universalArticles)

identifier
string(100)
required

werksübergreifende Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

werksübergreifende Bezeichnung des Artikels für die Anzeige. Wird für die Darstellung im UI verwendet.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

  • 201 - Created Falls der Datensatz neue angelegt wurde.

Response Body (universalArticles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des werksübergreifenden Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

werksübergreifende Kennung des. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Werksübergreifende Bezeichnung des Artikels für die Anzeige. Wird für die Darstellung im UI verwendet.


Einzelnen werksübergreifenden Artikel nach ID abfragen

GET  https://[BaseUrl]/universalArticles/{universalArticleId}

GET  https://[BaseUrl]/universalArticles/{universalArticleId}

Liefert den werksübergreifenden Artikel mit der angegebenen ID (UUID)

Path Params

universalArticleId
UUID
required

Systemübergreifend eindeutige ID (UUID) des werksübergreifenden Artikels.

Response

  • 200 - OK

Response Body (universalArticles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des werksübergreifenden Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Werksübergreifende Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Werksübergreifende Bezeichnung des Artikels für die Anzeige. Wird für die Darstellung im UI verwendet.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Alle oder bestimmte werksübergreifende Artikel abfragen

GET  https://[BaseUrl]/articles?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/articles?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

Die Methode bietet die folgenden Abfragemöglichkeiten:

  • Abfragen aller werksübergreifenden Artikel

  • Abfrage eines werksübergreifenden Artikels mit einer vorgegebenen Kennung

  • Abfragen einer Liste derjenigen werksübergreifenden Artikel, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurück gelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem default-Wert liegt, liefert die Anfragen maximal die als "default" festgelegte Anzahl Datensätze!

identifier
string(100)

Kennung zur Suche nach einem bestimmten werksübergreifendem Artikel.

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze, d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.
'onlyPending': Ausschliesslich Datensätze, die in Q Plant neu angelegt wurden und durch das ERP System, welches die Datenhoheit besitzt, zu vervollständigen (bspw: Kennung) sind.

Response

  • 200 - OK

Response Body
Response Body

Response Body (universalArticles)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des werksübergreifenden Artikels. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Werksübergreifende Kennung des Artikels. In der Regel die Artikel-Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Werksübergreifende Bezeichnung des Artikels für die Anzeige. Wird für die Darstellung im UI verwendet.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.

 


Einzelnen werksübergreifenden Artikel löschen

DELETE  https://[BaseUrl]/universalArticles/{universalArticleId}

DELETE  https://[BaseUrl]/universalArticles/{universalArticleId}

Löscht den adressierten werksübergreifenden Artikel

Path Params

universalArticleId
UUID
required

Global eindeutige ID (UUID) des zu löschenden werksübergreifenden Artikels.

Response

  • 200 - OK Die andressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID nicht existiert.

 


Kunden-Stammdaten

Diese Ressource repräsentiert die Kunden des Mischgut-Anbieters. 

  • Die Datenhoheit über einen synchronisierten Kundenstamm liegt beim Drittsystem. Innerhalb von Q Plant lassen sich Kundendatensätze deshalb nur begrenzt mutieren. Es gelten die folgenden Einschränkungen: 

    • Die Pflichtfelder der Kunden sind read-only und lassen sich damit in Q Plant nicht verändern.

    • Kunden lassen sich in Q Plant nicht löschen bzw. in den Papierkorb verschieben. Daneben besteht auch keine Möglichkeit, Kundendatensätze, welche durch das Drittsystem gelöscht und in den Papierkorb verschoben wurden, in Q Plant wiederherzustellen oder endgültig zu löschen.

    • Es besteht keine Möglichkeit, Kundendatensätze über einen Excel-Import in Q Plant zu verändern.

  • Abhängig von der System-Konfiguration des jeweiligen Q Plant Kundenprojektes, ist das Anlegen neuer Kunden erlaubt oder gesperrt. Im erstgenannten Anwendungsszenario werden neue Kunden wie geänderte Datensätze behandelt. Diese lassen sich mit GET .... ?changedDt={datetime} abfragen. Kunden die hierbei in Q Plant angelegt werden, erhalten keine Kennung (Identifier). Das Drittsystem besitzt nach der erstmaligen Übermittlung die Verantwortung, diese Kennung festzulegen und den Datensatz wieder zurückzusenden bzw. in Q Plant zu aktualisieren.

  • Handelt es sich um einen dezentralen Kundenstamm, der für jedes Mischwerk individuell geführt und verwaltet wird, so sind jeweils die Endpunkte mit der Mischwerks-ID im Pfad zu verwenden.

 Neuen Kunden anlegen oder bestehenden Kunden aktualisieren

PUT  https://[BaseUrl]/customers/{customerId}

PUT  https://[BaseUrl]/customers/{customerId}

PUT  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Aktualisiert den adressierten Kunden oder legt diesen neu an, falls noch kein Datensatz mit dieser ID existiert.

Path Params

customerId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten Kunden.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Request Body (customers)

identifier
string(100)
required

Kennung des Kunden. In der Regel die Kunden-Nummer im eigenen ERP.

Änderungen der Kennung sind lediglich dann zulässig, wenn der neue Wert nicht in Konflikt mit dem in Q Plant festgelegten Nummernkreis steht. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet. Ein Verstoss gegen diese Regel beantwortet das API mit dem Returnwert: 409 - Conflict.

name
string(100)
required

Name des Kunden (Bsp: "Kuhn & Söhne AG").

companyIdentifier
string(100)

Eindeutige Unternehmens-Kennung der Kunden (Unternehmens-ID oder Umsatzsteuer-Nummer).

postalAddress
string(100)

Rechnungsanschrift -> Strasse.

city
string(100)

Rechnungsanschrift -> Ortschaft.

postalCode
string(100)

Rechnungsanschrift -> Postleitzahl.

country
string(20)

Rechnungsanschrift -> Landeskennung gemäss ISO 3166-1.

phone
string(100)

Telefonnummer Zentrale.

emailAddress
string(100)

Allgemeine E-Mail Adresse.

language
string(20)

Korrespondenz-Sprache des Kunden. Bsp: ‚de-DE' oder ‚en-GB'. Die gewählte Sprache wird auch als Vorschlagswert der Korrespondenz-Sprache für neue Baustellen verwendet. Fehlt die Angabe, wird die Systemsprache des Q Plant Arbeitsbereichs verwendet.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Kunden.

deliveryRestriction 
string(20)

Allfällige Lieferbeschränkung (Gesperrt, Barzahlung). Fehlt die Angabe, werden allenfalls existierende Beschränkungen aufgehoben! Gültige Werte sind:
NULL: Es besteht keine Lieferbeschränkung.
'blocked': Der Kunde ist gesperrt und erhält keine Lieferungen mehr.
'cash': Der Kunde erhält Lieferungen nur noch gegen Barzahlung.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde

  • 201 - Created Falls der Datensatz neue angelegt wurde

Response Body (customers)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Kunden. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben wie sie in Q Plant aktuell gespeichert sind

Mögliche Fehler

404 - Not Found Falls die adressierte Ressource nicht existiert.

Nicht zulässige Kunden-Kennung

Der neue Wert für die Kunden-Kennung steht in Konflikt mit dem in Q Plant festgelegten Nummernkreis. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet.

409- Conflict

Attribute

Value

errorIdentifier

ChangeNotPermitted

errorMessage

IdentifierNotValid

reason

Identifier in conflict with defined number-range


Partielle Aktualisierung eines bestimmten Kunden

PATCH  https://[BaseUrl]/customers/{customerId}

PATCH  https://[BaseUrl]/customers/{customerId}

PATCH  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Aktualisiert die spezifizierten Attribute des adressierten Kunden. Siehe auch: https://q-point.atlassian.net/wiki/spaces/PUB/pages/1781202973/REST+Grundlagen+von+Q+Exchange#Hinweise-zur-PATCH-Methode

Path Params

customerId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten Kunden.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Request Body (customers)

identifier
string(100)
required

replace

Kennung des Kunden. In der Regel die Kunden-Nummer im eigenen ERP.

Änderungen der Kennung sind lediglich dann zulässig, wenn der neue Wert nicht in Konflikt mit dem in Q Plant festgelegten Nummernkreis steht. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet. Ein Verstoss gegen diese Regel beantwortet das API mit dem Returnwert: 409 - Conflict.

name
string(100)
required

replace

Name des Kunden (Bsp: "Kuhn & Söhne AG").

companyIdentifier
string(100)

replace, remove

Eindeutige Unternehmens-Kennung der Kunden (Unternehmens-ID oder Umsatzsteuer-Nummer).

postalAddress
string(100)

replace, remove

Rechnungsanschrift -> Strasse.

city
string(100)

replace, remove

Rechnungsanschrift -> Ortschaft.

postalCode
string(100)

replace, remove

Rechnungsanschrift -> Postleitzahl.

country
string(20)

replace, remove

Rechnungsanschrift -> Landeskennung gemäss ISO 3166-1.

phone
string(100)

replace, remove

Telefonnummer Zentrale.

emailAddress
string(100)

replace, remove

Allgemeine E-Mail Adresse.

language
string(20)

replace, remove

Korrespondenz-Sprache des Kunden. Bsp: ‚de-DE' oder ‚en-GB'. Die gewählte Sprache wird auch als Vorschlagswert der Korrespondenz-Sprache für neue Baustellen verwendet. Fehlt die Angabe, wird die Systemsprache des Q Plant Arbeitsbereichs verwendet.

annotation
string(1000)

replace, remove

Fakultative Anmerkungen oder interne Hinweise zu dem Kunden.

deliveryRestriction 
string(20)

replace, remove

Allfällige Lieferbeschränkung (Gesperrt, Barzahlung). Fehlt die Angabe, werden allenfalls existierende Beschränkungen aufgehoben! Gültige Werte sind:
NULL: Es besteht keine Lieferbeschränkung.
'blocked': Der Kunde ist gesperrt und erhält keine Lieferungen mehr.
'cash': Der Kunde erhält Lieferungen nur noch gegen Barzahlung.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

Response Body

Als Antwort liefert der Endpunkt sowohl die Original-Entität vor dem Patch, als auch das entsprechende Ergebnis des Patch zurück.

Mögliche Fehler

404 - Not Found Falls die adressierte Ressource nicht existiert.

Falsch formatiertes Patch-Dokument.

Das im Body übermittelte Patch-Dokument ist falsch formatiert oder enthält unzulässige Operationen.

400 - Bad Request

Attribute

Value

errorIdentifier

InvalidParameterValue

errorMessage

[Diverse]

reason

[Diverse]

 

Nicht zulässige Kunden-Kennung

Der neue Wert für die Kunden-Kennung steht in Konflikt mit dem in Q Plant festgelegten Nummernkreis. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet.

409- Conflict

Attribute

Value

errorIdentifier

ChangeNotPermitted

errorMessage

IdentifierNotValid

reason

Identifier in conflict with defined number-range


Einzelnen Kunden nach ID abfragen

GET  https://[BaseUrl]/customers/{customerId}

GET  https://[BaseUrl]/customers/{customerId}

GET  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Liefert den Kunden mit der angegebenen ID (UUID)

Path Params

customerId
UUID
required

Global eindeutige ID (UUID) des abgefragten Kunden.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Response

  • 200 - OK

Response Body (customers)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Kunden. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Kunden. In der Regel die Kunden-Nummer im eigenen ERP.

name
string(100)
required

Name des Kunden (Bsp: "Kuhn & Söhne AG").

companyIdentifier
string(100)

Eindeutige Unternehmens-Kennung der Kunden (Unternehmens-ID oder Umsatzsteuer-Nummer).

postalAddress
string(100)

Rechnungsanschrift -> Strasse.

city
string(100)

Rechnungsanschrift -> Ortschaft.

postalCode
string(100)

Rechnungsanschrift -> Postleitzahl.

country
string(20)

Rechnungsanschrift -> Landeskennung gemäss ISO 3166-1.

phone
string(100)

Telefonnummer Zentrale.

emailAddress
string(100)

Allgemeine E-Mail Adresse.

language
string(20)

Korrespondenz-Sprache des Kunden. Bsp: ‚de-DE' oder ‚en-GB'. Die gewählte Sprache wird auch als Vorschlagswert der Korrespondenz-Sprache für neue Baustellen verwendet. Fehlt die Angabe, wird die Systemsprache des Q Plant Arbeitsbereichs verwendet.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Kunden.

deliveryRestriction 
string(20)

Allfällige Lieferbeschränkung (Gesperrt, Barzahlung). Fehlt die Angabe, besteht keine Lieferbeschränkung. Gültige Werte sind:
NULL: Es besteht keine Lieferbeschränkung.
'blocked': Der Kunde ist gesperrt und erhält keine Lieferungen mehr.
'cash': Der Kunde erhält Lieferungen nur noch gegen Barzahlung.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Alle oder bestimmte Kunden abfragen

GET  https://[BaseUrl]/customers?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/customers?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/plants/{plantId}/customers?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

Die Methode bietet die folgenden Abfragemöglichkeiten:

  • Abfragen des gesamten Kundenstamms mit allen Datensätzen.

  • Abfrage eines Kunden mit einer vorgegebenen Kennung.

  • Abfragen einer Liste derjenigen Kunden, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden.

 

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurück gelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem default-Wert liegt, liefert die Anfrage maximal die als "default" festgelegte Anzahl Datensätze!

identifier
string(100)

Kennung des gesuchten Kunden.

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.
'onlyPending': Ausschliesslich Datensätze, die in Q Plant neu angelegt wurden und durch das ERP System, welches die Datenhoheit besitzt, zu vervollständigen (bspw: Kennung) sind.

Response

  • 200 - OK

Response Body
Response Body

Response Body (customers)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Kunden. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Kunden. In der Regel die Kunden-Nummer im eigenen ERP.

name
string(100)
required

Name des Kunden (Bsp: "Kuhn & Söhne AG").

companyIdentifier
string(100)

Eindeutige Unternehmens-Kennung der Kunden (Unternehmens-ID oder Umsatzsteuer-Nummer).

postalAddress
string(100)

Rechnungsanschrift -> Strasse.

city
string(100)

Rechnungsanschrift -> Ortschaft.

postalCode
string(100)

Rechnungsanschrift -> Postleitzahl.

country
string(20)

Rechnungsanschrift -> Landeskennung gemäss ISO 3166-1.

phone
string(100)

Telefonnummer Zentrale.

emailAddress
string(100)

Allgemeine E-Mail Adresse.

language
string(20)

Korrespondenz-Sprache des Kunden. Bsp: ‚de-DE' oder ‚en-GB'. Die gewählte Sprache wird auch als Vorschlagswert der Korrespondenz-Sprache für neue Baustellen verwendet. Fehlt die Angabe, wird die Systemsprache des Q Plant Arbeitsbereichs verwendet.

deleted
boolean

Der Datensatz wurde aus dem Stamm gelöscht.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Kunden.

deliveryRestriction 
string(20)

Allfällige Lieferbeschränkung (Gesperrt, Barzahlung). Fehlt die Angabe, besteht keine Lieferbeschränkung. Gültige Werte sind:
NULL: Es besteht keine Lieferbeschränkung.
'blocked': Der Kunde ist gesperrt und erhält keine Lieferungen mehr.
'cash': Der Kunde erhält Lieferungen nur noch gegen Barzahlung.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Einzelnen Kunden löschen

DELETE  https://[BaseUrl]/customers/{customerId}

DELETE  https://[BaseUrl]/customers/{customerId}

DELETE  https://[BaseUrl]/plants/{plantId}/customers/{customerId}

Löscht den Kunden mit der angegebenen ID

Path Params

customerId
UUID
required

Systemübergreifend eindeutige ID (UUID) des zu löschenden Kunden.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Response

  • 200 - OK Die adressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID existiert.


Baustellen-Stammdaten

Diese Ressource repräsentiert die Baustellen-Stammdaten des Mischgut-Anbieters. Baustellen sind die Empfänger der Materiallieferungen. Baustellen besitzen eine 1:1 Beziehung zum Kunden.

  • Für die Baustellen-Kennung (Identifier) besteht die Restriktion, dass diese in Bezug auf den zugeordneten Kunden eindeutig ist. 

  • Die Datenhoheit über einen synchronisierten Baustellenstamm liegt beim Drittsystem. Innerhalb von Q Plant lassen sich Baustellendatensätze deshalb nur begrenzt mutieren. Es gelten die folgenden Einschränkungen: 

    • Die Pflichtfelder der Baustellen sind read-only und lassen sich damit in Q Plant nicht verändern.

    • Baustellen lassen sich in Q Plant nicht löschen bzw. in den Papierkorb verschieben. Daneben besteht auch keine Möglichkeit, Baustellendatensätze, welche durch das Drittsystem gelöscht und in den Papierkorb verschoben wurden, in Q Plant wiederherzustellen oder endgültig zu löschen.

    • Es besteht keine Möglichkeit, Baustellendatensätze über einen Excel-Import in Q Plant zu verändern.

  • Abhängig von der System-Konfiguration des jeweiligen Q Plant Kundenprojektes, ist das Anlegen neuer Baustellen erlaubt oder gesperrt. Im erstgenannten Anwendungsszenario werden neuen Baustellen wie geänderte Datensätze behandelt. Diese lassen sich mit GET .... ?changedDt={datetime} abfragen. Baustellen, die hierbei in Q Plant angelegt werden, erhalten keine Kennung (Identifier). Das Drittsystem besitzt nach der erstmaligen Übermittlung die Verantwortung, diese Kennung festzulegen und den Datensatz wieder zurückzusenden bzw. in Q Plant zu aktualisieren.

  • Handelt es sich um einen dezentralen Baustellenstamm, der für jedes Mischwerk individuell geführt und verwaltet wird, so sind jeweils die Endpunkte mit der Mischwerks-ID im Pfad zu verwenden.

Neue Baustelle anlegen oder bestehende Baustelle aktualisieren

PUT https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PUT https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PUT https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites/{constructionSiteId}

Aktualisiert die adressierte Baustelle oder legt diese neu an, falls noch kein Datensatz mit dieser ID existiert.

Path Params

customerId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Kunden, zu dem die übermittelte Baustelle gehört.

constructionSiteId
UUID
required

Global eindeutige ID (UUID) der übermittelten Baustelle.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Request Body (constructionsites)

identifier
string(100)
required

Kennung der Baustelle. In der Regel handelt es sich hierbei um die Baustellen-Nummer aus dem ERP. Die Kennung muss in Bezug auf den zugeordneten Kunden eindeutig sein!

Änderungen der Kennung sind lediglich dann zulässig, wenn der neue Wert nicht in Konflikt mit dem in Q Plant festgelegten Nummernkreis steht. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet. Ein Verstoss gegen diese Regel beantwortet das API mit dem Returnwert: 409 - Conflict.

name
string(100)
required

Name der Baustelle.

identifierByCustomer
string(100)

Kennung der Baustelle auf Seite des Kunden. Hierbei handelt es sich in der Regel um eine eindeutige Bezeichnung oder der Baustellennummer im ERP des Kunden. Die Angabe wird dazu verwendet, um die Baustelle in den Bestellangaben des Kunden zu identifizieren.

costCenterByCustomer
string(100)

Kostenstelle der Baustelle auf Seite des Kunden. In der Regel handelt es sich hierbei um die Kostenstelle des zugeordneten Bauleiters. In  Q Plant besitzt diese Kostenstelle keine spezielle Bedeutung. Sie wird lediglich als fakultative Zusatzinformation zur Baustelle gespeichert. 

siteGroupIdentifier
string(20)

Kennung der Baustellgruppe, welche der Baustelle angehört. Die zur Auswahl stehenden Gruppen sind individuell pro Kunde. In der Regel dient die Gruppierung für anschliessende Filterungen zu Auswertungszwecken (bspw: Lieferzonen).

postalAddress
string(100)

Lieferadresse -> Strasse.

city
string(100)

Lieferadresse -> Ortschaft.

postalCode
string(100)

Lieferadresse -> Postleitzahl.

country
string(20)

Lieferadresse -> Landeskennung gemäss ISO 3166-1.

language
string(20)

Korrespondenz-Sprache der Baustelle. Bsp: ‚de-DE' oder ‚en-GB'. Diese Angabe ist nur in Ausnahmefällen notwendig. Fehlt sie, gilt die Sprache des zugrunde liegenden Kunden.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu der Baustelle.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

  • 201 - Created Falls der Datensatz neu angelegt wurde.

Response Body (constructionsites)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) der Baustelle. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben wie sie in Q Plant aktuell gespeichert sind.

Mögliche Fehler

Nicht zulässige Baustellen-Kennung

Der neue Wert für die Baustellen-Kennung steht in Konflikt mit dem in Q Plant festgelegten Nummernkreis. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet.

409- Conflict

Attribute

Value

errorIdentifier

ChangeNotPermitted

errorMessage

IdentifierNotValid

reason

Identifier in conflict with defined number-range


Partielle Aktualisierung einer bestimmten Baustelle

PATCH  https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PATCH  https://[BaseUrl]/customers/{customerId}/constructionsites/{constructionSiteId}

PATCH  https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites/{constructionSiteId}

Aktualisiert die spezifizierten Attribute der adressierten Baustelle. Siehe auch: https://q-point.atlassian.net/wiki/spaces/PUB/pages/1781202973/REST+Grundlagen+von+Q+Exchange#Hinweise-zur-PATCH-Methode

Path Params

customerId
UUID
required

Global eindeutige ID (UUID) des Kunden, zu dem die übermittelte Baustelle gehört.

constructionSiteId
UUID
required

Global eindeutige ID (UUID) der übermittelten Baustelle.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Request Body (constructionsites)

identifier
string(100)
required

replace

Kennung der Baustelle. In der Regel handelt es sich hierbei um die Baustellen-Nummer aus dem ERP. Die Kennung muss in Bezug auf den zugeordneten Kunden eindeutig sein!

Änderungen der Kennung sind lediglich dann zulässig, wenn der neue Wert nicht in Konflikt mit dem in Q Plant festgelegten Nummernkreis steht. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet. Ein Verstoss gegen diese Regel beantwortet das API mit dem Returnwert: 409 - Conflict.

name
string(100)
required

replace

Name der Baustelle.

identifierByCustomer
string(100)

replace, remove

Kennung der Baustelle auf Seite des Kunden. Hierbei handelt es sich in der Regel um eine eindeutige Bezeichnung oder der Baustellennummer im ERP des Kunden. Die Angabe wird dazu verwendet, um die Baustelle in den Bestellangaben des Kunden zu identifizieren.

costCenterByCustomer
string(100)

replace, remove

Kostenstelle der Baustelle auf Seite des Kunden. In der Regel handelt es sich hierbei um die Kostenstelle des zugeordneten Bauleiters. In  Q Plant besitzt diese Kostenstelle keine spezielle Bedeutung. Sie wird lediglich als fakultative Zusatzinformation zur Baustelle gespeichert. 

siteGroupIdentifier
string(20)

replace, remove

Kennung der Baustellgruppe, welche der Baustelle angehört. Die zur Auswahl stehenden Gruppen sind individuell pro Kunde. In der Regel dient die Gruppierung für anschliessende Filterungen zu Auswertungszwecken (bspw: Lieferzonen).

postalAddress
string(100)

replace, remove

Lieferadresse -> Strasse.

city
string(100)

replace, remove

Lieferadresse -> Ortschaft.

postalCode
string(100)

replace, remove

Lieferadresse -> Postleitzahl.

country
string(20)

replace, remove

Lieferadresse -> Landeskennung gemäss ISO 3166-1.

language
string(20)

replace, remove

Korrespondenz-Sprache der Baustelle. Bsp: ‚de-DE' oder ‚en-GB'. Diese Angabe ist nur in Ausnahmefällen notwendig. Fehlt sie, gilt die Sprache des zugrunde liegenden Kunden.

annotation
string(1000)

replace, remove

Fakultative Anmerkungen oder interne Hinweise zu der Baustelle.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

Response Body

Als Antwort liefert der Endpunkt sowohl die Original-Entität vor dem Patch, als auch das entsprechende Ergebnis des Patch zurück.

Mögliche Fehler

404 - Not Found Falls die adressierte Ressource nicht existiert.

 

Falsch formatiertes Patch-Dokument.

Das im Body übermittelte Patch-Dokument ist falsch formatiert oder enthält unzulässige Operationen.

400 - Bad Request

Attribute

Value

errorIdentifier

InvalidParameterValue

errorMessage

[Diverse]

reason

[Diverse]

 

Nicht zulässige Baustellen-Kennung

Der neue Wert für die Baustellen-Kennung steht in Konflikt mit dem in Q Plant festgelegten Nummernkreis. Es sind ausschliesslich Werte zulässig, welche sich nicht mit dem Wertebereich des Nummernkreises überschneiden. Bei der Prüfung werden neben dem Zahlenbereich auch allfällige Pre- und Postfix beachtet.

409- Conflict

Attribute

Value

errorIdentifier

ChangeNotPermitted

errorMessage

IdentifierNotValid

reason

Identifier in conflict with defined number-range


Alle oder geänderte Baustellen eines bestimmten Kunden abfragen

GET  https://[BaseUrl]/customers/{customerId}/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/customers/{customerId}/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/plants/{plantId}/customers/{customerId}/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

Liefert eine Liste von Baustellen des adressierten Kunden. Entweder sämtliche Baustellen oder diejenigen Baustellen, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden.

Path Params

customerId
UUID
required

Global eindeutige ID (UUID) des Kunden, zu dem die abgefragten Baustellen gehören.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurückgelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem default-Wert liegt, liefert die Anfrage maximal die als "default" festgelegte Anzahl Datensätze!

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.
'onlyPending': Ausschliesslich Datensätze, die in Q Plant neu angelegt wurden und durch das ERP System, welches die Datenhoheit besitzt, zu vervollständigen (bspw: Kennung) sind.

Response: 

  • 200 - OK

Response Body
Response Body

Response Body (constructionsites)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) der Baustelle. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung der Baustelle. Diese ist auf den zugeordneten Kunden bezogen eindeutig. In der Regel die Baustellen-Nummer des ERP.

name
string(100)
required

Name der Baustelle.

identifierByCustomer
string(100)

Kennung der Baustelle auf Seite des Kunden. Hierbei handelt es sich in der Regel um eine Kostenstelle bzw. Bezeichnung eines Kostenträgers im ERP des Kunden. Diese Angabe wird dazu verwendet, um die Baustelle in Bestellungen des Kunden zu identifizieren.

costCenterByCustomer
string(100)

Kostenstelle der Baustelle auf Seite des Kunden. In der Regel handelt es sich hierbei um die Kostenstelle des zugeordneten Bauleiters. In Q Plant besitzt diese Kostenstelle keine spezielle Bedeutung. Sie wird lediglich als fakultative Zusatzinformation zur Baustelle gespeichert. 

siteGroupIdentifier
string(20)

Kennung der Baustellengruppe, welche der Baustelle angehört. Die zur Auswahl stehenden Gruppen sind individuell pro Kunde. In der Regel dient die Gruppierung für anschliessende Filterungen zu Auswertungszwecken (bspw: Lieferzonen).

customerId
UUID
required

ID des Kunden der die Baustelle betreibt. Im Falle dieser Abfrage (GET) ist diese identisch mit dem gleichnamigen Path-Parameter.

postalAddress
string(100)

Lieferadresse -> Strasse.

city
string(100)

Lieferadresse -> Ortschaft.

postalCode
string(100)

Lieferadresse -> Postleitzahl.

country
string(20)

Lieferadresse -> Landeskennung gemäss ISO 3166-1.

language
string(20)

Korrespondenz-Sprache der Baustelle. Bsp: ‚de-DE' oder ‚en-GB'. Diese Angabe ist nur in Ausnahmefällen notwendig. Fehlt sie, gilt die Sprache des zugrunde liegenden Kunden.

deleted
boolean

Der Datensatz wurde aus dem Stamm gelöscht.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu der Baustelle.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource (Kunde) nicht existiert.


Einzelne Baustelle nach ID abfragen

GET  https://[BaseUrl]/constructionsites/{constructionSiteId}

GET  https://[BaseUrl]/constructionsites/{constructionSiteId}

GET  https://[BaseUrl]/plants/{plantId}/constructionsites/{constructionSiteId}

Liefert die Baustelle mit der angegebenen ID (UUID)

Path Params

constructionSiteId
UUID
required

Global eindeutige ID (UUID) der abgefragten Baustelle.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Response

  • 200 - OK

Response Body (constructionsites)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) der Baustelle. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar. Im Falle dieser Abfrage (GET) ist diese identisch mit dem Path-Parameter "constructionSiteId".

identifier
string(100)
required

Kennung der Baustelle. Diese ist auf den zugeordneten Kunden bezogen eindeutig. In der Regel die Baustellen-Nummer des ERP.

name
string(100)
required

Name der Baustelle.

identifierByCustomer
string(100)

Kennung der Baustelle auf Seite des Kunden. Hierbei handelt es sich in der Regel um eine Kostenstelle bzw. Bezeichnung eines Kostenträgers im ERP des Kunden. Diese Angabe wird dazu verwendet, um die Baustelle in Bestellungen des Kunden zu identifizieren.

costCenterByCustomer
string(100)

Kostenstelle der Baustelle auf Seite des Kunden. In der Regel handelt es sich hierbei um die Kostenstelle des zugeordneten Bauleiters. In  Q Plant besitzt diese Kostenstelle keine spezielle Bedeutung. Sie wird lediglich als fakultative Zusatzinformation zur Baustelle gespeichert. 

siteGroupIdentifier
string(20)

Kennung der Baustellgruppe, welche der Baustelle angehört. Die zur Auswahl stehenden Gruppen sind individuell pro Kunde. In der Regel dient die Gruppierung für anschliessende Filterungen zu Auswertungszwecken (bspw: Lieferzonen).

customerId
UUID
required

UUID des Kunden der die Baustelle betreibt

postalAddress
string(100)

Lieferadresse -> Strasse.

city
string(100)

Lieferadresse -> Ortschaft.

postalCode
string(100)

Lieferadresse -> Postleitzahl.

country
string(20)

Lieferadresse -> Landeskennung gemäss ISO 3166-1.

language
string(20)

Korrespondenz-Sprache der Baustelle. Bsp: ‚de-DE' oder ‚en-GB'. Diese Angabe ist nur in Ausnahmefällen notwendig. Fehlt sie, gilt die Sprache des zugrunde liegenden Kunden.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu der Baustelle.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Alle oder geänderte Baustellen abfragen

GET  https://[BaseUrl]/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/plants/{plantId}/constructionsites?skip={integer}&take={integer}&changedDt={datetime}&fetchType={enum}

Mithilfe dieser Methode lässt sich entweder der gesamte Baustellenstamm oder aber eine Liste derjenigen Baustellen abfragen, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden.

Path Params

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurück gelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem default-Wert liegt, liefert die Anfrage maximal die als "default" festgelegte Anzahl Datensätze!

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.
'onlyPending': Ausschliesslich Datensätze, die in Q Plant neu angelegt wurden und durch das ERP System, welches die Datenhoheit besitzt, zu vervollständigen (bspw: Kennung) sind.

Response

  • 200 - OK

Response Body
Response Body

Response Body (constructionsites)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) der Baustelle. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung der Baustelle. Diese ist auf den zugeordneten Kunden bezogen eindeutig. In der Regel die Baustellen-Nummer des ERP.

name
string(100)
required

Name der Baustelle.

identifierByCustomer
string(100)

Kennung der Baustelle auf Seite des Kunden. Hierbei handelt es sich in der Regel um eine Kostenstelle bzw. Bezeichnung eines Kostenträgers im ERP des Kunden. Dies Angabe wird dazu verwenden, um die Baustelle in Bestellungen des Kunden zu identifizieren.

costCenterByCustomer
string(100)

Kostenstelle der Baustelle auf Seite des Kunden. In der Regel handelt es sich hierbei um die Kostenstelle des zugeordneten Bauleiters. In  Q Plant besitzt diese Kostenstelle keine spezielle Bedeutung. Sie wird lediglich als fakultative Zusatzinformation zur Baustelle gespeichert. 

siteGroupIdentifier
string(20)

Kennung der Baustellgruppe, welche der Baustelle angehört. Die zur Auswahl stehenden Gruppen sind individuell pro Kunde. In der Regel dient die Gruppierung für anschliessende Filterungen zu Auswertungszwecken (bspw: Lieferzonen).

customerId
UUID
required

ID des Kunden der die Baustelle betreibt.

postalAddress
string(100)

Lieferadresse -> Strasse.

city
string(100)

Lieferadresse -> Ortschaft.

postalCode
string(100)

Lieferadresse -> Postleitzahl.

country
string(20)

Lieferadresse -> Landeskennung gemäss ISO 3166-1.

language
string(20)

Korrespondenz-Sprache der Baustelle. Bsp: ‚de-DE' oder ‚en-GB'. Diese Angabe ist nur in Ausnahmefällen notwendig. Fehlt sie, gilt die Sprache des zugrunde liegenden Kunden.

deleted
boolean

Der Datensatz wurde aus dem Stamm gelöscht.

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu der Baustelle.

changedDt
datetime
required

Zeitpunkt der letzten Änderung des Datensatzes. Der Zeitstempel basiert auf der Systemzeit von Q Plant! Der Zeitpunkt wird auch dann gesetzt, wenn die Änderung per API an Q Plant übermittelt wird.


Einzelne Baustelle löschen

DELETE  https://[BaseUrl]/constructionsites/{constructionsiteId}

DELETE  https://[BaseUrl]/constructionsites/{constructionsiteId}

DELETE  https://[BaseUrl]/plants/{plantId}/constructionsites/{constructionsiteId}

Löscht die Baustelle mit der angegebenen ID.

Path Params

constructionSiteId
UUID
required

Global eindeutige ID (UUID) der zu löschenden Baustelle.

plantId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Mischwerks.

Response

  • 200 - OK Die andressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID nicht existiert.


Rechnungen

Diese Ressource repräsentiert die Rechnung für getätigte Leistungen. In der Regel handelt es sich hierbei um Materiallieferungen, welche mit einem Lieferschein in Verbindung stehen.

  • Handelt es sich um einen segmentierten Rechnungsstamm, so sind jeweils die Endpunkte mit der Masterdata-Set-ID im Pfad zu verwenden.

Neue Rechnung anlegen

POST  https://[BaseUrl]/invoices

POST  https://[BaseUrl]/invoices

POST  https://[BaseUrl]/masterdatasets/{masterdatasetId}/invoices

Legt eine neue Rechnung in Q Plant an. 

Path Params

masterdatasetId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Masterdata-Sets.

Request Body (invoices)

identifier
string(100)
required

Eindeutige Kennung der Rechnung. In der Regel ist dies die Rechnungsnummer. Sie wird zur Identifikation durch den Anwender verwendet.

issueDt
datetime
required

Zeitpunkt, zu welchem die Rechnung ausgestellt wurde.

isCanceled
boolean
default: false

Die Rechnung ist storniert.

clientIdentifier
string(100)

Kennung des rechnungsstellenden Mandanten.

customerId
UUID

ID des Kunden, an welchen die Rechnung gestellt wird (Rechnungsempfänger). Wir zur primären Identifikation des zugehörigen Kunden-Stammdatensatzes herangezogen.

customerIdentifier
string(100)
required

Kennung des Kunden. In der Regel handelt es sich hierbei um die Kunden-Nummer aus dem ERP des Mischgutlieferanten.

customerName
string(100)

Name des Kunden.

customerPostalAddress
string(100)

Postadresse (Strasse inklusive Hausnummer und allfällige weitere Angaben) des Kunden.

customerCity
string(100)

Ortsangabe des Kunden.

customerPostalCode
string(20)

PLZ des Kunden.

customerCountry
string(20)

Landeskennung des Kunden gemäss ISO 3166-1.

debitorId
UUID

ID des Debitors.

debitorName
string(100)

Name des Debitors.

debitorIdentifier
string(100)

Kennung des Debitors.

debitorPostalAddress
string(100)

Postadresse (Strasse inklusive Hausnummer und allfällige weitere Angaben) des Debitors.

debitorCity
string(100)

Ortsangabe des Debitors.

debitorPostalCode
string(20)

PLZ des Debitors.

debitorCountry
string(20)

Landeskennung des Debitors gemäss ISO 3166-1.

amount
decimal(10,3)
required

Brutto Rechnungsbetrag.

currency
string(40)
required

Währungs-Kennung.

annotation
string(1000)

Frei formulierbare Anmerkungen zur Rechnung (Achtung: Diese sind für den Endkunden sichtbar!).

category
string(100)

Frei formulierbare Kategorie der Rechnung (Bsp: Gutschrift, Storno, Ratenzahlung, Rechnung etc.).

deliveries
[deliveries]

Liste der Lieferscheine, welche durch die Rechnung fakturiert werden.

Deliveries

Diese Ressource repräsentiert eine Rechnungsposition in Form eines abstrahierten Lieferscheins.

Lieferungen zur Rechnung (deliveries)

deliveryNoteId
UUID

UUID des Lieferscheins.

docketNumber
string(100)
required

Lieferscheinnummer. Sowohl der Wert als auch die Formatierung der Nummer wird durch dasjenige System bestimmt, welches den Lieferschein ausgibt. In der Regel handelt es sich hierbei um das Wiegesystem der Mischanlage.

constructionSiteId
UUID

ID der Baustelle. Wird zur primären Identifikation des zugehörigen Baustellen-Stammdatensatzes herangezogen.

constructionSiteIdentifier
string(100)

Kennung der Baustelle, an welche das Mischgut geliefert wurde. Hierbei handelt es sich um die Baustellen-Nummer, aus dem ERP des Mischgutlieferanten. Fehlt die Angabe der 'constructionSiteId', wird die Kennung zur Identifikation des-Baustellen-Stammdatensatzes herangezogen.

constructionSiteName
string(100)

Name der Baustelle. Wird zur Anzeige im UI genutzt.

Response: 

  • 201 - Created Falls die Rechnung neu angelegt wurde.

Response Body (invoices)

id
UUID
required

Die von Q Plant festgelegte, eindeutige ID der Rechnung.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben wie sie in Q Plant aktuell gespeichert sind


Neue Rechnung anlegen oder bestehende Rechnung aktualisieren

PUT  https://[BaseUrl]/invoices/{invoiceId}

PUT  https://[BaseUrl]/invoices/{invoiceId}

PUT  https://[BaseUrl]/masterdatasets/{masterdatasetId}/invoices/{invoiceId}

Übermittelt eine Rechnung an Q Plant. Dabei muss der Client eine invoiceId mit übergeben. Falls diese invoiceId in Q Plant schon existiert, wird die entsprechende Rechnung mit den übergebenen Daten aktualisiert. Falls nicht, wird eine neue Rechnung angelegt.

Path Params

invoiceId
UUID
required

Global eindeutige ID (UUID) der neuen oder schon existierenden Rechnung.

masterdatasetId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Masterdata-Sets.

Request Body (invoices)

identifier
string(100)
required

Eindeutige Kennung der Rechnung. In der Regel ist dies die Rechnungsnummer. Sie wird zur Identifikation durch den Anwender verwendet.

issueDt
datetime
required

Zeitpunkt, zu welchem die Rechnung ausgestellt wurde.

isCanceled
boolean
default: false

Die Rechnung ist storniert.

clientIdentifier
string(100)

Kennung des rechnungsstellenden Mandanten.

customerId
UUID

ID des Kunden, an welchen die Rechnung gestellt wird (Rechnungsempfänger). Wird zur primären Identifikation des zugehörigen Kunden-Stammdatensatzes herangezogen.

customerIdentifier
string(100)
required

Kennung des Kunden. In der Regel handelt es sich hierbei um die Kunden-Nummer aus dem ERP des Mischgutlieferanten.

customerName
string(100)

Name des Kunden.

customerPostalAddress
string(100)

Postadresse (Strasse inklusive Hausnummer und allfällige weitere Angaben) des Kunden.

customerCity
string(100)

Ortsangabe des Kunden.

customerPostalCode
string(20)

PLZ des Kunden.

debitorId
UUID

ID des Debitors.

debitorName
string(100)

Name des Debitors.

debitorIdentifier
string(100)

Kennung des Debitors. Wird zur Identifikation im UI verwendet.

debitorPostalAddress
string(100)

Postadresse (Strasse inklusive Hausnummer und allfällige weitere Angaben) des Debitors.

debitorCity
string(100)

Ortsangabe des Debitors.

debitorPostalCode
string(20)

PLZ des Debitors.

debitorCountry
string(20)

Landeskennung des Debitors gemäss ISO 3166-1.

amount
decimal(10,3)
required

Brutto Rechnungsbetrag.

currency
string(40)
required

Währungs-Kennung.

annotation
string(1000)

Frei formulierbare Anmerkungen zur Rechnung (Achtung: Diese sind für den Endkunden sichtbar!).

category
string(100)

Frei formulierbare Kategorie der Rechnung (Bsp: Gutschrift, Ratenzahlung, Rechnung etc.).

deliveries
[deliveries]

Liste der Lieferscheine, welche durch die Rechnung fakturiert werden.

Deliveries

Diese Ressource repräsentiert eine Rechnungsposition in Form eines abstrahierten Lieferscheins.

Lieferungen zur Rechnung (deliveries)

deliveryNoteId
UUID

UUID des Lieferscheins.

docketNumber
string(100)
required

Lieferscheinnummer. Sowohl der Wert als auch die Formatierung der Nummer wird durch dasjenige System bestimmt, welches den Lieferschein ausgibt. In der Regel handelt es sich hierbei um das Wiegesystem der Mischanlage.

constructionSiteId
UUID

ID der Baustelle. Wird zur primären Identifikation des zugehörigen Baustellen-Stammdatensatzes herangezogen.

constructionSiteIdentifier
string(100)

Kennung der Baustelle, an welche das Mischgut geliefert wurde. Hierbei handelt es sich um die Baustellen-Nummer, aus dem ERP des Mischgutlieferanten. Fehlt die Angabe der 'constructionSiteId', wird die Kennung zur Identifikation des-Baustellen-Stammdatensatzes herangezogen.

constructionSiteName
string(100)

Name der Baustelle. Wird zur Anzeige im UI genutzt.

Response 

  • 200 - Ok Falls die adressierte Rechnung existiert und erfolgreich aktualisiert wurde.

  • 201 - Created Falls die Rechnung neu angelegt wurde.

Response Body (invoices)

id
UUID
required

ID (UUID) der Rechnung.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben wie sie in Q Plant aktuell gespeichert sind.


Einzelnen Rechnung löschen

DELETE  https://[BaseUrl]/invoices/{invoiceId}

DELETE  https://[BaseUrl]/invoices/{invoiceId}

DELETE  https://[BaseUrl]/masterdatasets/{masterdatasetId}/invoices/{invoiceId}

Löscht die adressierte Rechnung aus Q Plant. Die Rechnung wird über den Parameter invoiceId adressiert.

Path Params

invoiceId
UUID
required

ID (UUID) der zu löschenden Rechnung.

masterdatasetId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Masterdata-Sets.

Response

  • 200 - OK Die andressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID existiert.


Aufträge

Diese Ressource repräsentiert Aufträge als Rahmenvereinbarungen zwischen Kunden und Lieferanten über die Annahme und Lieferung von Materialien. Aufträge basieren auf Angeboten des Lieferanten an Bauunternehmen und sind die Basis für zukünftige Bestellungen und Lieferungen. Der Lieferant nutzt sie im Q Plant-System zur Überwachung der Materialflüsse und zur Sicherstellung, dass die Lieferungen den Vereinbarungen entsprechen. Die spezifizierte Artikelauswahl in den Aufträgen wird bei Bedarf an den Kunden übermittelt, um im Bestellsystem, wie Q Site, passende Vorschläge zu machen und die Einhaltung der Vereinbarungen zu gewährleisten.

Auftrag anlegen oder bestehenden Auftrag verändern

PUT  https://[BaseUrl]/contracts/{contractId}

PUT  https://[BaseUrl]/contracts/{contractId}

Aktualisiert den adressierten Auftrag oder legt diesen neu an, falls noch kein Datensatz mit dieser ID existiert.

Path Params

contractId
UUID
required

Systemübergreifend eindeutige ID (UUID) des übermittelten Auftrags.

Request Body (contracts)

identifier
string(100)
required

Kennung des Auftrags. In der Regel Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung des Auftrags für die Anzeige. Wird für die Darstellung im UI verwendet.

plantId
UUID
required

ID des Mischwerks, auf das sich der Auftrag bezieht.

scheduledBeginDt
datetime
required

Geplanter Ausführungsbeginn des Auftrags.

scheduledEndDt
datetime
required

Geplantes Ausführungsende des Auftrags.

customerId
UUID
conditionally required

ID des Kunden, auf den sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Kunden-Stammdatensatzes herangezogen. Pflicht, falls die Kundenkennung 'customerIdentifier' fehlt.

customerIdentifier
string(100)
conditionally required

Kennung des Kunden, auf den sich der Auftrag bezieht. Hierbei handelt es sich um die Kunden-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Kunden-ID 'customerId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Kunden herangezogen.

constructionSiteId
UUID
conditionally required

ID der Baustelle, auf die sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Baustellen-Stammdatensatzes herangezogen. Pflicht, falls die Baustellenkennung 'constructionSiteIdentifier' fehlt.

constructionSiteIdentifier
string(100)
conditionally required

Kennung der Baustelle, auf die sich der Auftrag bezieht. Hierbei handelt es sich um die Baustellen-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Baustellen-ID 'constructionSiteId' fehlt. In diesem Fall wird die Kennung zur Identifikation der Baustelle herangezogen.

state
string(50)
required

Aktueller Status des Auftrags. Hierbei handelt es sich um einen Aufzählungstyp:
draft: Das Projekt befindet sich im Entwurfs-Status.
issued: Der Auftrag wurde an den Kunden übermittelt.
finished: Der Auftrag ist fertiggestellt. Es wird kein Material mehr geliefert und angenommen.

articles
list[article]
required

Liste der Artikel des Auftrags inkl. Menge und Angabe der Lieferkondition. Die Liste muss mindestens einen Eintrag enthalten.

description
string(1000)

Kurze Beschreibung des Verwendungszwecks des Auftrags.

Artikel-Liste

Liste der Artikel zu dem Auftrag. Jeder Eintrag beschreibt einen Artikel, die Liefermenge inkl. Masseinheit sowie die zugehörige Lieferkondition.  

Object (article)

articleId
UUID
conditionally required

ID des Artikels. Wird zur primären Identifikation herangezogen. Pflicht, falls die Artikelkennung 'articleIdentifier' fehlt.

articleIdentifier
string(100)
conditionally required

Kennung des Artikels. Hierbei handelt es sich um die Artikelnummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Artikel-ID 'articleId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Artikels herangezogen.

quantity
decimal(10,3)
required
must be greater than 0

Liefermenge des spezifizierten Artikels.

quantityUnit
string(40)
required

Masseinheit der Mengenangabe.

deliveryTerm
string(40)
required

Lieferkonditionen nach "International Commercial Terms". Zulässig sind: 
'EXW': Ex Works bzw. Ab Werk
'DAP': Delivered at Place bzw. Frei Baustelle

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikeleintrag.

Response

  • 200 - OK Falls der Datensatz aktualisiert wurde.

  • 201 - Created Falls der Datensatz neue angelegt wurde.

Response Body (contracts)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Auftrags. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

...

Restliche Felder gemäss Request Body. Die Werte werden so zurückgegeben, wie sie in Q Plant aktuell gespeichert sind.


Einzelnen Auftrag nach ID abfragen

GET  https://[BaseUrl]/contracts/{contractId}

GET  https://[BaseUrl]/contracts/{contractId}

Liefert den Auftrag mit der angegebenen ID (UUID).

Path Params

contractId
UUID
required

Systemübergreifend eindeutige ID (UUID) des Auftrags.

Response

  • 200 - OK

Response Body (contracts)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Auftrags. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Auftrags. In der Regel Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung des Auftrags für die Anzeige. Wird für die Darstellung im UI verwendet.

plantId
UUID
required

ID des Mischwerks, auf das sich der Auftrag bezieht.

scheduledBeginDt
datetime
required

Geplanter Ausführungsbeginn des Auftrags.

scheduledEndDt
datetime
required

Geplantes Ausführungsende des Auftrags.

customerId
UUID
conditionally required

ID des Kunden, auf den sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Kunden-Stammdatensatzes herangezogen. Pflicht, falls die Kundenkennung 'customerIdentifier' fehlt.

customerIdentifier
string(100)
conditionally required

Kennung des Kunden, auf den sich der Auftrag bezieht. Hierbei handelt es sich um die Kunden-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Kunden-ID 'customerId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Kunden herangezogen.

constructionSiteId
UUID
conditionally required

ID der Baustelle, auf die sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Baustellen-Stammdatensatzes herangezogen. Pflicht, falls die Baustellenkennung 'constructionSiteIdentifier' fehlt.

constructionSiteIdentifier
string(100)
conditionally required

Kennung der Baustelle, auf die sich der Auftrag bezieht. Hierbei handelt es sich um die Baustellen-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Baustellen-ID 'constructionSiteId' fehlt. In diesem Fall wird die Kennung zur Identifikation der Baustelle herangezogen.

state
string(50)
required

Aktueller Status des Auftrags. Hierbei handelt es sich um einen Aufzählungstyp:
draft: Das Projekt befindet sich im Entwurfs-Status.
issued: Der Auftrag wurde an den Kunden übermittelt.
finished: Der Auftrag ist fertiggestellt. Es wird kein Material mehr geliefert und angenommen.

articles
list[article]
required

Liste der Artikel des Auftrags inkl. Menge und Angabe der Lieferkondition. Die Liste muss mindestens einen Eintrag enthalten.

description
string(1000)

Kurze Beschreibung des Verwendungszwecks des Auftrags.

Artikel-Liste

Liste der Artikel zu dem Auftrag. Jeder Eintrag beschreibt einen Artikel, die Liefermenge inkl. Masseinheit sowie die zugehörige Lieferkondition.  

Object (article)

 

 

articleId
UUID
conditionally required

ID des Artikels. Wird zur primären Identifikation herangezogen. Pflicht, falls die Artikelkennung 'articleIdentifier' fehlt.

articleIdentifier
string(100)
conditionally required

Kennung des Artikels. Hierbei handelt es sich um die Artikelnummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Artikel-ID 'articleId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Artikels herangezogen.

quantity
decimal(10,3)
required
must be greater than 0

Liefermenge des spezifizierten Artikels.

quantityUnit
string(40)
required

Masseinheit der Mengenangabe.

deliveryTerm
string(40)
required

Lieferkonditionen nach "International Commercial Terms". Zulässig sind: 
'EXW': Ex Works bzw. Ab Werk
'DAP': Delivered at Place bzw. Frei Baustelle

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikeleintrag.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.


Alle oder bestimmten Auftrag abfragen

GET  https://[BaseUrl]/contracts?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

GET  https://[BaseUrl]/contracts?skip={integer}&take={integer}&identifier={string}&changedDt={datetime}&fetchType={enum}

Die Methode bietet die folgenden Abfragemöglichkeiten:

  • Abfragen aller Aufträge.

  • Abfrage eines Auftrags mit einer vorgegebenen Kennung.

  • Abfragen einer Liste derjenigen Aufträge, welche nach einem spezifizierten Zeitpunkt in Q Plant verändert wurden.

Query Params

skip
integer
0 <= Wert

Index im Result-Set. Anzahl Datensätze, welche zu überspringen sind. Wird verwendet, um nacheinander mehrere Data-Pages abzurufen.

take
integer
0 < Wert <= default
default:  200

Maximale Anzahl der als Response Body zurück gelieferten Datensätze. Falls das Feld fehlt oder der angegebene Wert über dem Default-Wert liegt, liefert die Anfragen maximal die als "default" festgelegte Anzahl Datensätze!

identifier
string(100)

Kennung zur Suche nach einem bestimmten Auftrag.

changedDt
datetime
must be greater than 0

Ist der Parameter gesetzt, liefert der Aufruf sämtliche Datensätze, die nach dem spezifizierten Zeitpunkt in Q Plant geändert wurden. Fehlt der Parameter, liefert der Aufruf Datensätze des Stamms.
Für aufeinanderfolgende Abfragen der sich geänderten Datensätze, muss hierzu der Wert "changedTillDt" aus der Response des vorangehenden Aufrufs mitgegeben werden.

fetchType
enum
default:  'onlyActive'

Filter, welcher bei der Abfrage angewendet wird. Folgende Werte stehen zur Auswahl:
'all': Sämtliche Datensätze, d.h. auch neue und gelöschte Datensätze (kein Filter). 
'onlyActive': Ausschliesslich aktive Datensätze.
'onlyDeleted',  Ausschliesslich gelöschte Datensätze.

Response

  • 200 - OK

Response Body
Response Body

Response Body (contracts)

id
UUID
required

Systemübergreifend eindeutige ID (UUID) des Auftrags. Diese wird vom System festgelegt, welches die Entität anlegt. Die ID ist für den Anwender nicht sichtbar.

identifier
string(100)
required

Kennung des Auftrags. In der Regel Nummer aus dem ERP. Wird für die Darstellung im UI verwendet.

name
string(100)
required

Bezeichnung des Auftrags für die Anzeige. Wird für die Darstellung im UI verwendet.

plantId
UUID
required

ID des Mischwerks, auf das sich der Auftrag bezieht.

scheduledBeginDt
datetime
required

Geplanter Ausführungsbeginn des Auftrags.

scheduledEndDt
datetime
required

Geplantes Ausführungsende des Auftrags.

customerId
UUID
conditionally required

ID des Kunden, auf den sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Kunden-Stammdatensatzes herangezogen. Pflicht, falls die Kundenkennung 'customerIdentifier' fehlt.

customerIdentifier
string(100)
conditionally required

Kennung des Kunden, auf den sich der Auftrag bezieht. Hierbei handelt es sich um die Kunden-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Kunden-ID 'customerId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Kunden herangezogen.

constructionSiteId
UUID
conditionally required

ID der Baustelle, auf die sich der Auftrag bezieht. Wird zur primären Identifikation des zugehörigen Baustellen-Stammdatensatzes herangezogen. Pflicht, falls die Baustellenkennung 'constructionSiteIdentifier' fehlt.

constructionSiteIdentifier
string(100)
conditionally required

Kennung der Baustelle, auf die sich der Auftrag bezieht. Hierbei handelt es sich um die Baustellen-Nummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Baustellen-ID 'constructionSiteId' fehlt. In diesem Fall wird die Kennung zur Identifikation der Baustelle herangezogen.

state
string(50)
required

Aktueller Status des Auftrags. Hierbei handelt es sich um einen Aufzählungstyp:
draft: Das Projekt befindet sich im Entwurfs-Status.
issued: Der Auftrag wurde an den Kunden übermittelt.
finished: Der Auftrag ist fertiggestellt. Es wird kein Material mehr geliefert und angenommen.

articles
list[article]
required

Liste der Artikel des Auftrags inkl. Menge und Angabe der Lieferkondition. Die Liste muss mindestens einen Eintrag enthalten.

description
string(1000)

Kurze Beschreibung des Verwendungszwecks des Auftrags.

Artikel-Liste

Liste der Artikel zu dem Auftrag. Jeder Eintrag beschreibt einen Artikel, die Liefermenge inkl. Masseinheit sowie die zugehörige Lieferkondition.  

Object (article)

articleId
UUID
conditionally required

ID des Artikels. Wird zur primären Identifikation herangezogen. Pflicht, falls die Artikelkennung 'articleIdentifier' fehlt.

articleIdentifier
string(100)
conditionally required

Kennung des Artikels. Hierbei handelt es sich um die Artikelnummer aus dem ERP des Mischgutlieferanten. Pflicht, falls die Artikel-ID 'articleId' fehlt. In diesem Fall wird die Kennung zur Identifikation des Artikels herangezogen.

quantity
decimal(10,3)
required
must be greater than 0

Liefermenge des spezifizierten Artikels.

quantityUnit
string(40)
required

Masseinheit der Mengenangabe.

deliveryTerm
string(40)
required

Lieferkonditionen nach "International Commercial Terms". Zulässig sind: 
'EXW': Ex Works bzw. Ab Werk
'DAP': Delivered at Place bzw. Frei Baustelle

annotation
string(1000)

Fakultative Anmerkungen oder interne Hinweise zu dem Artikeleintrag.

  • 404 - Not Found Falls die adressierte Ressource nicht existiert.

 


Einzelnen Auftrag löschen

DELETE  https://[BaseUrl]/contracts/{contractId}

DELETE  https://[BaseUrl]/contracts/{contractId}

Löscht den adressierten Auftrag.

Path Params

contractId
UUID
required

Global eindeutige ID (UUID) des zu löschenden Auftrags.

Response

  • 200 - OK Die andressierte Ressource wurde in den Papierkorb verschoben.

  • 404 - Not Found Falls keine Ressource mit der angegebenen ID nicht existiert.