Service DataValidation
  • 26 Sep 2024
  • 3 Minutes to read
  • Dark
    Light
  • PDF

Service DataValidation

  • Dark
    Light
  • PDF

The content is currently unavailable in English. You are viewing the default German version.
Article summary

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 DataValidation enthalten

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)
Nur bei Suche mit DocumentType ein Pflichtfeld.

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.


Was this article helpful?