Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 7 Nächste Version anzeigen »

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

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



  • Keine Stichwörter