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())
}