Data Management
Tables, records, and the dictionary
Everything is a table of records. Table definitions live in sys_db_object; field definitions live in sys_dictionary, where each field has a type, a max length, and flags such as mandatory, read-only, and default value. Reference fields store a sys_id pointing at another table and support dot-walking (e.g. caller_id.department) to read values from the referenced record.
Importing data
The canonical path is import set → transform map → target table. Upload a CSV or connect to a data source; rows land in a staging table (sys_import_set_row). A transform map maps source columns to target fields. Choose a coalesce field that already exists on the target table to decide update-versus-insert. Transform scripts (onBefore/onAfter) let you adjust values during the transform.
Working with records in the UI
- Insert saves and returns to the list; Insert and Stay saves and keeps you on the new record.
- Templates pre-fill field values; list personalization sets columns.
- Export writes the current list to CSV/XLSX using the visible columns and filter.
Traps
- Coalesce must be a field on the target table, not merely in the source file.
- Import sets stage data; the target record does not exist until the transform runs.
- A choice field's options live in
sys_choice, not in the dictionary record itself. - Extending a table inherits its fields; adding fields to the parent later appears in the child.
Rule of thumb
Ask "where is the data now?" File → import set row → target record. Any answer that skips the transform map is wrong.