Dictionary
The dictionary defines each data item once: its label, its format, its rule (Boolean, list of values, lookup, sequence…), its default value and its translations. A query column that references an entry inherits that definition, so the same item reads the same way on every screen, chart and dashboard.
It is edited from Liberty Next → Build → Dictionary, which holds five kinds of records:
| Tab | Holds |
|---|---|
| Entries | The data items: label, format, rule, default, translations. |
| Enums | Fixed lists of codes and labels, for the ENUM rule. |
| Lookups | Queries that turn a code into a label, for the LOOKUP rule. |
| Sequences | Queries that return the next number, for the SEQUENCE rule. |
| Framework | Overrides of the lists the builders offer (formats, rules, datasource types…). |
At a glance
Scopes
The Scope chips at the top choose which part of the dictionary is shown:
- Shared — the entries every connector can use.
- One scope per connector — entries, enums, lookups and sequences that only that connector's queries see. The + button adds a scope for an existing connector.
A query of the sales connector looks for an entry in the sales scope first, then in the shared scope. Two applications can therefore define the same key (STATUS) differently without clashing. The Framework tab is shared only.
How a column uses an entry
A column of a query picks up the entry whose key matches its name (CUSTOMER_STATUS), or the entry named in its dd field when the names differ (an empty dd opts out). A label or format set on the column itself takes precedence over the entry's. See Connectors → Schema discovery and column hints.
On a screen, a column can also switch off the rule it inherits by setting the rule DISABLED — see Rules.
Entries
The left-hand list shows each entry's key with its label underneath, and a filter field. Entry keys are written in upper case. The form on the right is split into tabs:
| Tab | Field | Effect |
|---|---|---|
| General | Label | The default label, used when no translation matches the user's language. |
| General | Format | How the value is displayed and entered — see Formats. |
| Rule | Rules | The rule applied to the item — see Rules. |
| Rule | Rules values | The rule's argument: the true value for BOOLEAN, the enum for ENUM, the lookup for LOOKUP, the sequence for SEQUENCE. The list changes with the rule. |
| Rule | False value | BOOLEAN only: the value written when the box is unticked. Blank infers it from the true value (Y → N, 1 → 0, true → false); any other true value writes NULL. |
| Rule | Default | The initial value when a new row is added. |
| Rule | Justify | For fixed-width character columns: right_blank (right-aligned, padded with spaces) or right_zero (right-aligned, padded with zeros). Applied to the written values and to the keys of the WHERE clause. Blank = left-aligned. |
| Rule | Size | The stored width of the item, used with Justify when the physical column is wider. |
| Rule | Decimals | For jdenumber, the implied decimal places of the stored integer; for the other numeric formats, the places shown (0 to 9). |
| Rule | Lookup params | Fixed values for the :params of the lookup's query (e.g. TYPE = CUSTOMER). The keys offered are the parameters the lookup declares. |
| Translations | one line per language | The label in that language. |
| Advanced | Override | Marks the entry as a local customisation: an upgrade package does not overwrite it. |
The record bar offers Find usages, Rename, Clone and Delete. Renaming an entry, a lookup or a sequence updates its references in the other configuration files (screens, connectors, dictionary) and reloads; it asks to save pending changes first.
Formats
| Format | Displayed as |
|---|---|
text, textarea | Text, on one line or several. |
number, integer, decimal, currency | A number. |
date, datetime, timestamp | A date, with or without time. The form, the bulk edit and the filters offer the application's date picker: a field where the date can be typed (an impossible day goes back to the previous value) and a month calendar with Today and Clear, whose title opens a month and year chooser. A datetime or timestamp field adds a time field (hh:mm or hh:mm:ss). A value carrying its time zone (a PostgreSQL timestamptz) shows in the browser's local time; a value without a zone (Oracle DATE, JD Edwards dates) shows as stored. |
jdedate, jdetime | A JD Edwards date (CYYDDD) or time (HHMMSS), shown as a regular date or time. |
jdenumber | A JD Edwards amount stored without its decimal point: with Decimals = 2, the stored 12345 reads and is entered as 123.45, and is written back as 12345. Filters are typed in real units; the Data Explorer totals and detail rows are scaled the same way. The scan of a JD Edwards table fills the decimals from the data dictionary. |
boolean | A tick or a cross. |
password | A masked value. |
url | A link opening in a new tab; the form's field gets a button that opens it. Only http(s) addresses become links (www.… gets https://). |
email | A mailto: link; the form's field gets a button that opens it. Only a value shaped like an address becomes a link. |
color | The code with a colour swatch beside it; in the form, the swatch opens the system colour picker. Hex codes and rgb() only. |
For url, email and color, any other value stays plain text, and sorting, filtering and export keep the raw value.
The Framework tab can add values to this list.
Rules
| Rule | Effect |
|---|---|
BOOLEAN | The value shows as a tick or a cross, and the form shows a check box. Rules values gives the true value (Y, 1, 01, true, T); False value the other one. |
ENUM | The code shows with its label from the enum named in Rules values; the form offers the enum's values. |
LOOKUP | The code shows with its label from the lookup named in Rules values; the form offers the lookup's rows in a searchable list. |
SEQUENCE | On insert, the server fills the column with the next number of the sequence named in Rules values, inside the same transaction. |
LOGIN | On every insert or update, the server writes the signed-in user's name, in upper case, whatever the form sent. The form shows it already filled when a row is added. |
SYSDATE | On insert or update, the server writes the current date and time (server local time) when no value was sent. The form shows today's date when a row is added. |
PASSWORD | On write, the server encrypts the value with the master key (ENC:…) so that it can be decrypted when used — for connection passwords stored in a table. A blank password on update leaves the stored value unchanged. Pair it with the password format to mask the field. |
DEFAULT | On insert or update, the Default value is written when the column comes empty. |
DISABLED | Set on a screen column: cancels the rule inherited from the entry for that screen (for example an import screen whose rows already carry their dates). |
The server-side rules (SEQUENCE, LOGIN, SYSDATE, PASSWORD, DEFAULT) apply to every write through the query — form, grid editing, API — not only to the form. A writable query can also stamp values explicitly with tokens such as {{LOGIN}} or {{SYSDATE}} — see Parameter binding.
Audit columns
A rule applies to every write whose query binds the column:
| Column | Rule | Condition |
|---|---|---|
UPDATED_BY | LOGIN | — |
UPDATED_AT | SYSDATE | The column must come empty: keep it out of the dialog. |
CREATED_BY, CREATED_AT | LOGIN, SYSDATE | Only if the update query does not write them — otherwise each update would replace them. |
ID | SEQUENCE | When the database does not number the rows itself. |
The {{LOGIN}} / {{SYSTIMESTAMP}} tokens written in the insert and update queries are the simplest way to stamp these columns — see Audit trail.
---|---|
| CREATED_BY, UPDATED_BY | LOGIN |
| CREATED_AT, UPDATED_AT | SYSDATE |
| ID | SEQUENCE (when the database does not number the rows itself) |
These columns need not appear in the form: the server fills them on every write, and the browser cannot change the user name.
Enums
An enum is a fixed list of codes, for values known in advance (L / M / H for a priority).
| Field | Effect |
|---|---|
| Label | The name of the list. |
| Values | One line per code: Value (the stored code), Label (the text shown), and Translations of the label. |
| Override | As for entries. |
An entry uses it with Rules = ENUM and Rules values = the enum's id.
Lookups
A lookup is a query whose rows turn a code into a label — for values held in a table (statuses, countries, users).
| Field | Effect |
|---|---|
| Description | What the lookup returns. |
| Connector | The connector of the query. Blank uses the connector of the column that references it. |
| Query | The query returning the codes and labels. Buttons next to it edit the query, clone it, create one, or generate it from a table. |
| Value | The result column holding the code. |
| Label | The result column shown instead of the code. |
| Union sources | Further queries, possibly on other connectors or databases, whose rows are added to the list. Each must return the same columns as the main query. |
| Key columns | Columns that make the code unique when the same code has different labels (a code per company, for instance): the grid matches them against the row's columns of the same name. |
| Return params | Columns that a screen column can copy into other fields of the form when a row is picked. |
| Display fields | Extra columns shown next to the code and label in the list, to tell similar rows apart. |
| Filter fields | Display fields that get filter chips at the top of the list. |
| Override | As for entries. |
The lookup's query declares its own :params; their values come from the entry's Lookup params, or from the screen column. Cascading lists are built on the screen — see Sequences and lookups.
Sequences
A sequence is a query that returns the next number, typically SELECT COALESCE(MAX(id), 0) + 1 FROM invoices.
| Field | Effect |
|---|---|
| Description | What the sequence numbers. |
| Connector | The connector of the query. Blank uses the connector that fires it. |
| Query | The query returning the next number. Its :params take their values from the row being inserted. |
| Dd id | Fires the sequence for every column whose entry has this key, even without the SEQUENCE rule. Blank limits it to the entries pointing at it. |
| Params | The parameters the query expects — for information. |
| Override | As for entries. |
The sequence only fires on insert, inside the insert's transaction.
Framework
The builders' drop-down lists (formats, rules, datasource types, HTTP methods, column alignments…) come from lists shipped with the framework. Override framework enum copies one of them here to change it: the copy replaces the shipped list. Removing the override brings back the shipped values.
Scan a table
Scan a table creates entries from a real table instead of typing them one by one. The Generate dictionary items dialog asks for:
- Connector — the connector to read;
- Store under (app) — the scope the entries go to (the connector's by default);
- Table to scan;
- JD Edwards connector — strips the 2-character table prefix to reach the shared data item, and reads the JD Edwards data dictionary.
Scan lists one row per column. Columns that already have an entry are greyed out and marked (exists); they are never overwritten. Missing ones are ticked. Each row can be adjusted before it is added:
| Column | Content |
|---|---|
| Label | Filled from the JD Edwards data dictionary on a JD Edwards connector; blank otherwise. |
| Format | Inferred from the column's SQL type. |
| Rule / Rule value | An optional rule and its argument. |
| Lookup params | Values for a lookup's parameters (TYPE=CUSTOMER). |
| Default | A default value. |
| Source | Where the proposal comes from. |
Add N item(s) writes the ticked entries into the chosen scope and reloads the configuration. The Screen Creation Assistant runs the same scan in its Dictionary step.
Export
Export downloads dictionary_entries.xlsx: one row per entry, every scope included, with its scope, key, label, format, rule, rule value, false value and default — handy to compare with the data dictionary of the source application.
Saving
Save checks every entry, enum, lookup and sequence, writes the file and reloads the configuration: screens show the new labels on their next refresh. Discard drops the unsaved changes. Settings is open to superusers only.
Translated labels follow the user's language; how it is chosen is described in Translations.
What's next
- Connectors — the queries whose columns use the dictionary.
- Sequences and lookups — build the queries behind them.
- Screens → Columns — per-screen settings on top of the entry.
- Form conditions — show, require or lock a field depending on other values.