Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Einführung

Dieser Endpunkt ist für alle Suchanfragen zuständig und wird stetig um neue Such-Optionen erweitert. Die Suchanfragen können einerseits einzelne Objekte, wie z.B ein Kunde oder ein Auftrag, zurück liefern. Andererseits können aber auch Data-Sets von zusammenhängen Objekten abgefragt werden, wie z.B. Aufträge mit Positionen.

Inhalt

Inhalt
excludeInhalt

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


Codeblock
languagejs
themeDJango
{
  "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


Codeblock
languagejs
themeDJango
{
  "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


Codeblock
languagejs
themeDJango
[
  {
    "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

Seitenhierarchie
rootAPI - Allgemeine Richtlinien
startDepth2
excerpttrue
searchBoxtrue