Go To Record – opening a record¶
The command "Go To Record" makes a record the current record and, in an interactive run, opens it in a form. The record is found by entity and record id, or through a relationship of the current record. This page is for administrators who build actions that lead the user to a record or work on another record.
1. At a glance¶
| Purpose | Open a record for the user, or switch the action to another record |
| Typical use | "Open customer" from an order, opening a record found by a variable, working on a record in a background run |
| Where in the editor | Toolbar menu "Data" → "Go To Record" |
| Needs a user interface | Only to show the form |
| Needs a current record | Only for "By Relationship" |
| Changes the current record | Yes – to the opened record |
| Related | Change Context, Create Entity Record, Navigate |
2. Settings¶
The settings are on the tab "Settings". Like every command, the command also has "Display Name", "Description" and "Execution Condition" on the tab "General" (see Actions).
| Setting | Meaning | Default / Required |
|---|---|---|
| "Type" | "By Type and RecId": a record of an entity, by its id. "By Relationship": a record related to the current record. | By Type and RecId |
| "Entity" | The entity of the record ("By Type and RecId") | Required for this type |
| "Relationship" | A relationship of the current record's entity ("By Relationship"). The current record is its parent side. | Required for this type |
| "RecId" | Expression for the record id, evaluated against the current record – for example a reference field or a variable | Required for "By Type and RecId"; optional for "By Relationship" |
| "Use Expression" | Chooses the form by "Form Expression" instead of "Form" | Off |
| "Form Expression" | Expression for the id of the form, evaluated against the opened record. Only active with "Use Expression". | Empty: default form |
| "Form" | The form to open ("By Type and RecId", without "Use Expression") | Empty: the default form of the entity |
| "Don't load form" | Only make the record current – no form, no question about unsaved changes | Off |
3. Behaviour¶
- Unless "Don't load form" is on, a user with unsaved changes on the current record is asked first: "Save", "Discard" or "Cancel". "Cancel" ends the action.
- "RecId" is evaluated.
- By Type and RecId: the record is read with the read limits of the user. If "RecId" is empty or not a record id, "Entity" is missing, or the record does not exist or may not be read, the action ends (without an error).
- By Relationship: without a current record or relationship, the action ends. With an empty "RecId", the related record that is currently selected (for example in a related items grid) is taken; with a "RecId", the related record with that id. If there is none, the action ends.
- The record becomes the current record.
- Without a user interface, or with "Don't load form", the command is done here.
- Otherwise the form is determined – "Form Expression" or "Form", else the default form of the entity – and opened. The action waits until the form is loaded. If "Form Expression" does not result in a form id, the action ends.
Because it also works without a user interface, Go To Record is the way to make another record current in a background run.
4. Examples¶
Open the customer of an order.
| Setting | Value |
|---|---|
| "Type" | By Type and RecId |
| "Entity" | Customer |
| "RecId" | the reference field "Customer" of the order |
| "Form" | Customer – Detail |
Update the customer in the background. The same command with "Don't load form" on, followed by Update Entity Record "Last order = today" with "Save", and Change Context back to the order.
Open the selected position. "Type" "By Relationship", "Relationship" "Order → Positions", "RecId" empty – a button next to the positions grid opens the position the user selected.
5. Limitations¶
- "Form" is only offered for "By Type and RecId". For "By Relationship" use "Form Expression" or the default form.
- A record that is not found ends the action quietly. The user sees no message; add a check before the command if they should.