Transfer fields window
Target.TransferFields(Source) copies fields by field number. The Transfer fields
window shows how the fields of two tables pair up, flags types that do not match, and shows the fields that
cannot take part.
Opening it
- Right-click the target table in the Objects panel and select Show TransferFields Mapping From…, then pick the source table in Select source table. In Universal Search, the same command is among a table's actions.
-
In code, in the Object view or the Extended view,
right-click a
TransferFieldscall between two different tables and select Show TransferFields Mapping. The window opens at once, with the record's table as the target and the argument's table as the source.
Show TransferFields Mapping From… is offered for tables only, and needs a license.

TransferFields(TimeSheetDetail) in table 5510 Employee Time Reg Buffer.| # | Name | Description |
|---|---|---|
| 1 | Source table | The table the fields are copied from, on the right: the argument of TransferFields. Its name, with the publisher and the module under it. See Source and target tables. |
| 2 | Target table | The table the fields are copied to, on the left: the record TransferFields is called on. |
| 3 | Direction | Points from the source to the target. Read from right to left, as the assignment runs. |
| 4 | Search | Keeps the fields whose name or number matches. Takes the name and number search syntax, such as a range like 1..10. |
| 5 | Swap source and target tables | Swaps the two tables: x.TransferFields(y) becomes y.TransferFields(x). |
| 6 | No. | The field number. One row per number that either table has, sorted by number. |
| 7 | Target Name | The target table's field with that number, blank when it has none. An extension icon follows a field that an extension adds. |
| 8 | Target Type | The type of the target field. |
| 9 | Source Type | The type of the source field. |
| 10 | Source Name | The source table's field with that number, blank when it has none. |
| 11 | Mapping icon | How the field transfers; hover over it for the reason. See Mapping icons. |
Right-click a row and select Go to Target Field or Go to Source Field, each followed by the field's name in brackets, to open the field. The item is dimmed when that table has no field with the number.
Select source table
Show TransferFields Mapping From… first asks for the source table. The window lists the workspace's tables, except the target table itself, grouped as in the Objects panel.
| # | Name | Description |
|---|---|---|
| 1 | Collapse all nodes | Collapses every group. |
| 2 | Expand all nodes | Expands every group. |
| 3 | Toggle search box | Shows or hides the search box. |
| 4 | Filter | Opens the filter popup, as in the Objects panel. See Filter popup. |
| 5 | Group by | The gear. Opens the grouping and sorting popup, as in the Objects panel. See Group by popup. |
| 6 | Search | Narrows the list by table name or number, as in the Objects panel. See Searching. |
| 7 | Tables | Select the source table. While you scroll, the group of the top row stays pinned at the top. |
| 8 | OK | Opens the Transfer fields window with the selected table as the source. Enabled while a table is selected; Enter does the same. |
| 9 | Cancel | Closes the window without opening the mapping; Esc does the same. |
Double-clicking a table does not choose it; select it and then OK.
Source and target tables
The heading over each side names its table, with the publisher and module under it. Hover over it for the table's path, select it to open the table, or right-click it for the table's object context menu.
Opened from the object context menu, the window takes the fields of each table and of every table extension of it in the workspace. Opened from code, it looks the fields up from the app that holds the code.
Mapping icons
The icon between the two sides tells how each field number transfers. Hover over it for the reason.
| Icon | Meaning | Tooltips |
|---|---|---|
| Green check | Both fields exist, take part and the value can be assigned. | Types match; Source dimension fits target dimension; Source enum coerced into target enum |
| Yellow cross | Both fields exist in the same app, but the types do not match, or one of them cannot take part: a FlowField, or a field with ObsoleteState Removed. | Types mismatch; Text overflow; Source field has a flow field class, Target field has a flow field class; Source field is obsolete removed, Target field is obsolete removed |
| Dimmed cross | Both fields exist, but in different apps, so TransferFields skips them. | The type result followed by “however the fields are from different extensions and the mapping is therefore ignored”, or Also, the fields are from different extensions after the reasons above |
| Hollow circle | Only one table has a field with the number. | Source field is not defined; Target field is not defined |
Text and Code fields convert into each other; a longer text into a shorter one is a Text overflow. Enum fields count as the same type even when their enums differ.
Filters
| # | Name | Description |
|---|---|---|
| 1 | Toggle showing only extension fields | Shows only the fields that extensions add. Shown when either table has such fields. |
| 2 | Swap source and target tables | Swaps the two tables. |
| 3 | Search | Narrows the rows by field name or number. |
| 4 | Mapping filter | Narrows the rows by how they map; see the table below. |
| 5 | Field selector | Which side the mapping filter looks at: Any, Both, Source or Target. |
The mapping filter lists only the choices that some row matches:
| Filter | Lists |
|---|---|
| All | Every field number in either table. The default. |
| Mapped | Field numbers in both tables that take part. |
| › Type Match | Of those, the ones whose types match. |
| › Type Mismatch | Of those, the ones whose types do not match. |
| Mapped (Disqualified) | Field numbers in both tables that do not take part. |
| › Module Mismatch | Of those, the ones whose fields are in different apps. |
| › Obsolete Removed | Of those, the ones where a field has ObsoleteState Removed. |
| › Flow Field Class | Of those, the ones where a field is a FlowField. |
| Unmapped | Field numbers in one table only. |
For › Obsolete Removed, › Flow Field Class and Unmapped, the field selector chooses whether the source field, the target field, both or either must qualify. It offers only the choices that match some row, and is dimmed when Any is the only one.
Check a TransferFields before adding a field
Use this before you add a field to a table that is copied with TransferFields, such as a document line and its posted line.
- In the Objects panel, right-click the target table, such as Sales Invoice Line, and select Show TransferFields Mapping From….
- Select the source table, such as Sales Line, and select OK.
- Select › Type Mismatch in the mapping filter and hover over each icon to read the mismatch.
- Select Unmapped to see the fields that exist on one side only. Give a new field the same number on both sides if it should transfer.
The window lists the fields that will not copy as you expect, each with its reason.