onCourse implements a DSL built on top of Apache Groovy. This provides you a powerful language for creating scripts, exports and reports inside onCourse.

This document only describes the DSL extensions to Groovy. You have the entire language at your disposal and you should take the time to read the excellent documentation available. Note that you cannot use closures inside JasperReport templates. In addition, for scripts only, you can write Apache Cayenne queries against the database to fetch any data you need. For exports only, you can also make sure of the SuperCSV project to simplify the generation of CSV export data.