- 26 Sep 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Service DataValidation
- Updated on 26 Sep 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Wichtiger Hinweis
Diese Schnittstelle ist standardisiert und kann jederzeit um zusätzliche Felder erweitert werden. Neue Felder werden stets am Ende der bestehenden Struktur hinzugefügt, um die Kompatibilität zu gewährleisten.
Allgemeine Infos zum Service
Der Service DataValidation bietet die Funktion, dass für die angegebene(n) Position(en) oder auch für gesamte Belege, gewisse Prüfungen/Validierungen durchgeführt werden können. Die möglichen Rückgabe-Fehlermeldungen müssen in der Kunden-Doku aufgenommen werden, damit das Fremdsystem diese interpretieren kann und dementsprechend weitere Actions auslösen kann.
Dieser Service kann rein über die GUID einer oder mehrere Positionen getriggert werden, aber auch mit der GUID eines gesamten Beleges bzw. der Kombination aus Belegtyp und Belegnummer.
Das Ergebnis bzw. der entstandene Fehler einer Abfrage wird je Position rückübergeben und kann aus mehreren Fehlercodes je Position bestehen. Positionen, für die keine Fehler entstanden sind, werden im Response nicht angeführt.
Geschwindigkeit der Prüfung
Zu beachten ist, dass diese Prüfungen, je nach Anzahl der Positionen, die geprüft werden sollen, eine Weile dauern können.
Je mehr zusammenhängende Informationen im JSON übergeben werden, desto performanter ist der Service - z.B. DocumentType und PositionGUID ist schneller als nur PositionGUID. Nochmal schneller ist die Kombination aus DocumentType + DocumentNumber + PositionGUID.
Request - Payload Body
Typ: HTTP POST
ContentType: application/json
Header
Feldname | Typ | Beschreibung |
---|---|---|
OrgCde | STRING | (Optional) Organisationsnummer |
Language | STRING | (Optional) Sprache |
Service | STRING | Muss den Fixwert |
ValidationObjects [ARRAY]
Feldname | Typ | Beschreibung |
---|---|---|
DocumentType | INTEGER | Dokumenttyp: 1: Angebot 2: Auftrag 3: Bestellung Nur bei Suche mit DocumentNumber ein Pflichtfeld. |
DocumentNumber | CHARACTER | Suche per DocNum (sichtbare Belegenummer) |
DocumentGUID | CHARACTER | Suche per GUID des Belegs |
PositionGUID | CHARACTER | Suche per GUID einer Position |
LeafletID | CHARACTER | Suche per LeafletId (Merkzettel Id) des Auftrages |
Beispiel für Validierung eines Auftrags per Belegnummer
{
"Service": "DataValidation",
"OrgCde": "H01",
"ServiceData": {
"ValidationObjects": [{
"DocumentType": 2,
"DocumentNumber": "20240123"
}
]
}
}
Beispiel für Validierung einer Position per GUID
{
"Service": "DataValidation",
"OrgCde": "H01",
"ServiceData": {
"ValidationObjects": [{
"PositionGUID": "aec82ece-2001-e3bf-bb14-9f2884c4e60c"
}
]
}
}
Response
Header
Feldname | Typ | Beschreibung |
---|---|---|
Success | BOOL | Gibt an, ob die Anfrage erfolgreich war. Bei Success = False steht eine übergeordnete Fehlerursache in ErrorMessage. |
ErrorMessage | CHARACTER | Enthält die übergeordnete Fehlerursache, wenn Success = False ist. |
ValidationObjects[ARRAY]
Feldname | Typ | Beschreibung |
---|---|---|
DocumentType | INTEGER | moveIT Belegtyp |
DocumentNumber | CHARACTER | moveIT Belegnummer |
PositionNumber | CHARACTER | moveIT Positionsnummer |
DocumentGUID | CHARACTER | GUID des moveIT Beleg |
PositionGUID | CHARACTER | GUID der moveIT Position |
ErrorCode | CHARACTER | ErrorCode laut nachfolgenden Fehler Codes |
ErrorMessage | CHARACTER | ErrorMessage laut nachfolgenden Fehler Codes |
Beispiel Response für mehrere Positionen
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"ValidationObjects": [{
"DocumentType": 1,
"DocumentNumber": "20240123",
"PositionNumber": "110",
"DocumentGUID": "aec82ece-2001-e3bf-bb14-9f2884c4e60f",
"PositionGUID": "aec82ece-2001-e3bf-bb14-9f2884c4e61e",
"ErrorCode": "1001",
"ErrorMessage:": "Not transferable to order"
},{
"DocumentType": 2,
"DocumentNumber": "20240312",
"PositionNumber": "140",
"DocumentGUID": "aec82ece-2001-e3bf-bb14-9f2884c4e62f",
"PositionGUID": "aec82ece-2001-e3bf-bb14-9f2884c4e687",
"ErrorCode": "1005",
"ErrorMessage:": "Newer master data available"
}
]
}
}
Mögliche Fehlercodes
Nicht in Auftrag überleitbar
ErrorCode: 1001
ErrorMessage: Not transferable to order
Handelt es sich um den Belegtyp Angebot (1), so kann es dort in der Konfiguration erlaubt sein, dass gewisse Frageparameter nicht ausgewählt werden bzw. mit „unbestimmt“ belegt werden, weil diese z.B. im Angebotsfall nicht genauer bekannt sein müssen – z.B. Anschlag einer Tür oder Farbe (sofern die Farbgruppe gewählt wurde gibt es keine unterschiedlichen Preise). Wird aber nun der Beleg in einen Auftrag oder eine Bestellung übergeleitet, so müssen diese Eigenschaften sehr wohl bekannt sein und somit müssen hier auch genaue Antworten gewählt werden.
Die Prüfung für diesen Punkt wäre also, ob diese Position in einem Auftrag / einer Bestellung eine gültige Position wäre.
Technisch nicht frei
ErrorCode: 1002
ErrorMessage: Technically not free/plausibel
Wird eine Konfiguration abgebrochen und unfertig gespeichert, so handelt es sich um eine Technisch nicht freie Position. Diese Position kann nicht bestellt werden.
Kaufmännisch nicht frei
ErrorCode: 003
ErrorMessage: Commercially not free/plausibel
Hat eine Position z.B: einen Preis von 0,00€ so ist die Position Kaufmännisch nicht frei. Diese Position kann nicht bestellt werden.
Nicht Bestellbar
ErrorCode: 1004
ErrorMessage: Not available for order
Hat ein Modell oder ein Artikel im Warenstamm des Lieferanten NICHT die Eigenschaft „Bestellbar“ gesetzt, so kann diese Position nicht bestellt werden.
Neuere Stammdaten verfügbar
ErrorCode: 1005
ErrorMessage: Newer master data available
Sind für eine Position neuere Stammdaten im Backend-System vorhanden, so könnte dies relevant sein, dass eine Position vor der Bestellung erneut überrechnet werden muss.