Beschreibung des Endpunkts
POST- /api/search/<type>
Aufruf
Der Aufruf ist ein POST-Call und nach dem Grundmuster aller API-Calls gestaltet. Nach den Basis-Daten kann das Anfragende System Filter-Optionen mit angeben.
- Search: Hier werden die Filter-Kriterien mit angegeben (wird im Folgenden genauer beschrieben)
- Ordner: Mit dieser Liste wird der Abfrage gesagt in welcher Reihenfolge die Ergebnisse geliefert werden sollen. Es ist dabei möglich mehrere Reihenfolgen anzugeben. So kann z.B. bei de rAbfrage von Aufträge zuerst nach Kunden-Nr. und dann nach Anlage-Datum sortiert werden.
- Limit: Dieser Wert gibt an, wie viele Ergebnisse abgefragt werden sollen.
- Offset: Offset gibt an ab welchem Wert das Limit beginnen soll. Kann dafür verwendet werden, wenn Daten blockweise abgefragt werden sollen.
Beispiel eines Aufrufs
{ "api_version": 1, "systemno": 4711, "operatorno": 789, "systemtype": "POSMAN", "processno": 125, "datetime": "2019-01-22T15:20:50+0100", "data": { "search": [ { "data": "20180731235959", "alias": "", "operator": "<", "type": "OPERATOR", "columnname": "datum" }, ... ], "order": [ { "columnname": "kdnr", "alias": "", "direction": "asc" }, ... ], "limit": "100", "offset": "0" } }
Response
Innerhalb des Typen wird fest definiert welche Objekte immer als Array zurückgegeben werden und welche nicht.
Beim Typen SalesOrderWithPosition werden die AuftragsPositionen immer als Array übergeben, auch wenn dem Auftrag nur eine Position zugewiesen ist.
Beispiel einer Antwort
{ "api_version": 1, ... "data": [ { "Auftrag": { "datum": "20180301080002", "status": 10, "typ": 1, "kdnr": "10001", "anzahlung": 0, "text2": "", .... }, "Kunden": { "anrede": "Frau", "vorname": "Jane", "name": "Doe", "name2": "", "suchname": "", "strasse": "Bahnhofstraße 6", "plz": "33142", "ort": "Büren", "blz": "", "konto": "", "gebdatum": "00000000000000", "rabatt": "0.000", "maxrabatt": "0.000", ..... }, "AuftragPosition": [ { "artnr1": "1061", "menge": 5, "gelmenge": 0, "status": 10, "filiale": 2, "lager": "L-02-DUS", "preis": 6750, "artbez": "Wincor moPOS", "artnr2": "810812001061", "artnr4": "", "groesse": 0, "vknr": -2, "preisliste": 0, "artnr3": "", "lieferdatum": "00000000000000", "rabatt": "0", "vpe": 0, "text1": "", .... }, { "artnr1": "1000", "menge": 5, "gelmenge": 0, "status": 10, "filiale": 2, "lager": "L-02-DUS", "preis": 0, "artbez": "Tisch Palor", "artnr2": "810812001000", "artnr4": "", "groesse": 0, "vknr": -2, "preisliste": 0, "artnr3": "", "lieferdatum": "00000000000000", "rabatt": "0", "vpe": 0, "text1": "", .... }, { "artnr1": "", "menge": 0, "gelmenge": 0, "status": 10, "filiale": 2, "lager": "L-02-DUS", "preis": 1485, "artbez": "Butterkeks", "artnr2": "", "artnr4": "", "groesse": 0, "vknr": -2, "preisliste": 0, "artnr3": "", "lieferdatum": "00000000000000", "rabatt": "0", "vpe": 0, "text1": "", .... }, .... ], "AddInfo":[ {}, ... ] } ] } ], "limit": "100", "offset": "200" } }
Aufbau der Filter
Innerhalb des Aufrufs können verschiedene Filterungen mit unterschiedlichen Typen angegeben werden. Allgemein entsprechen diese Typen den SQL gegenparts.
Besonderheit dabei ist das bei einem LIKE die '%' automatisch vorne und hinten angefügt werden.
Innerhalb des Types "Operator" kann dann mit dem Operator auf ">", "<", "=" etc. geprüft werden.
Beispiele für Filter
[ { "data": "1,2,3,4,5,15", "alias": "", "type": "IN", "columnname": "kdnr" }, { "data": "1,2,3,4,5,15", "alias": "", "type": "NOT IN", "columnname": "kdnr" }, { "data": "15", "alias": "", "type": "LIKE", "columnname": "kdnr" }, { "data": "20180731235959", "alias": "", "operator": "<", "type": "OPERATOR", "columnname": "datum" }, ]
Übersicht der Unterseiten in diesem Abschnitt des Handbuchs