Anwendungsentwickler Avatar

Lieber Besucher, der Betrieb dieses Blogs wurde am 25.11.2015 eingestellt.
Die Seite besitzt keine dynamischen Funktionen mehr und dient nur noch als Archiv.

Es wird keine Garantie für die Aktualität der hier stehenden Informationen übernommen!

ExtJS: Neue Datensätze mit richtiger Insert ID

Die komplette Kommunikation mit dem Server Backend läuft bei ExtJS über den sogenannten Data Store. In dem Store ist definiert in welchem Format (XML, JSON, ...) die Daten vom Server kommen und welche Informationen (Felder, Datentypen, ...) enthalten sind.

Mit den erweiterten API Funktionen funktioniert dies in beide Richtungen. Legt man über ein ExtJS Control (Grid, Combobox, Form, ...) einen neuen Datensatz an, wird automatisch (siehe autoSync und autoLoad) ein Request an den Server gesendet, der diesen Datensatz in die Datenbank schreibt.

Nun kam bei uns die Frage auf, wie man die Primärschlüssel ID in den Data Store bekommt. Denn die ist ja noch "0" wenn das Request an den Server geschickt wird.

Die Lösung ist einfach, aber genial: Bekommt der Data Store als Antwort auf das Create Request ein Response, wie er es auch beim erstmaligen Lesen von Backend bekommt, werden Änderungen die das Backend vorgenommen hat automatisch übernommen. In unserem Fall die ID.

Request POST

  1. {
  2.     "uid":0,
  3.     "name":"Test",
  4.     "code":12345,
  5.     "obsolete":false,
  6.     "create_date":"2014-12-16T13:12:05",
  7.     "change_date":null
  8. }

Response

  1. {
  2.     "message":null,
  3.     "result": {
  4.        "uid":4211,
  5.        "name":"Test",
  6.        "code":12345,
  7.        "obsolete":false,
  8.        "create_date":"2014-12-16T13:12:05",
  9.        "change_date":null
  10.    },
  11.    "success":true,
  12.    "totalCount":null
  13. }

Statt 0 steht nun im Record 4211 als ID. :)

Wichtig ist halt, dass das Response das gleiche Format hat wie beim initialen Lesen. Einzige Ausnahme: In result befindet sich nur ein einzelnes Objekt und nicht ein Array von Objekten.

Allgemein halte ich Kommentarsysteme für eine schöne Sache. Mittlerweile habe ich aber auf einen echten Kommentar über 200 Spam Kommentare. Bitte sende mir für Feedback eine Email. Auf Wunsch veröffentliche ich dann entsprechend Updates im Beitrag.