Dies ist eine Vorschau des aktuellen Arbeitsstandes der Dokumentation!

# Groovy-Script zum Erstellen von Entiäten in der Datenbank

Die Funktion zum erstellen einer Bestellung könnte so aussehen:

import com.batix.util.UniqueID
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
import groovy.sql.Sql

def erstellen() {

  /*
  JSON, welches vom Client an den Server gesendet wurde in ein Groovy-Object parsen
  Das JSON-Object könnte z.B. so aussehen:
  {
    kunde: "174B6491E09" ID des Kunden
    positionen: [
      {
        ... Objekte mit diversen felden
      }
    ]
  }
   */
  Object json = new JsonSlurper().parseText(request.inputStream.text)

  Sql sql = new Sql(action.connection)


  // Eine neue ID erzeugen (Das BX:Framework nutzt Hexadezimale Strings als ID)
  String bestellungPrimaryKey = UniqueID.createHexId()

  sql.execute("""
    INSERT INTO bxc_bestellung (ID, Kunde, Bestelldatum, ACTIV)
    VALUES(?,?,?,?)
    """, [bestellungPrimaryKey, json.kunde, new Date() /* heutiges Datum */, 'j'])

  // Für jede Position im Json ein SQL-Insert ausführen
  json.positionen.each { Object position ->
    String positionPrimaryKey = UniqueID.createHexId()
    sql.execute("""
    INSERT INTO bxc_bestellung_position (ID, Bestellung, ACTIV)
    VALUES(?,?,?)
    """, [positionPrimaryKey, bestellungPrimaryKey, 'j'])
  }

  response.setStatus(201)
  print(new JsonBuilder(bestellungPrimaryKey).toPrettyString())
}