Custom fields and imports
Custom fields extend supported records with additional structured values. They are different from Custom Tables, which define their own records and columns.
Define a field
- Open Operations Studio → Custom fields with the appropriate definition-management permission.
- Create a definition with a readable name, stable key, field type, and supported target entity/object type.
- Configure options or structure: text, multiline text, number, boolean, date, selection, list, or matrix.
- For a selection, supply its allowed options. For a list, define named columns and any row limits; for a matrix, define fixed rows and columns.
- Set supported defaults, display order, visibility, and propagation rules where available.
- Save and publish through the definition's lifecycle, then open an applicable record and verify how the field is displayed and validated.
The create dialog accepts lowercase letters, numbers, and underscores in keys. A label can change without making an existing integration's field key interchangeable. Changing type or structure can affect existing values, Apps, and reports: inspect usages first and test representative records.
Enter and reuse values
Use the field editor on the applicable record. Required columns and selection options apply inside structured values too. Preserve existing values when a partial edit is intended. A field definition does not automatically configure every App or report to display that field: the builder must bind the relevant data.
Import data
Use the import workflow provided by the target module. Production-order imports support CSV and XLSX preview and execution; work-center imports have their own flow. This is not a universal importer for every entity.
- Confirm scope and authorization, then use the current template or field instructions for that module.
- Preserve identifiers as text, including leading zeroes. Use UTF-8 CSV, explicit units, unambiguous dates, and decimal points where numeric parsing expects them.
- Upload and inspect the preview: column names, interpreted values, existing/new rows, and validation errors.
- Resolve missing references and invalid rows before executing. A preview does not create orders.
- Execute only the reviewed rows and inspect the returned results and persisted records.
- If execution is partial or uncertain, reconcile successful identifiers before retrying. Do not upload the whole file again blindly.
For production orders, required preview headers include plannedStart, plannedEnd, and quantityPlanned. Standard fields and custom-field keys must match the supported schema. Use the detailed creation guide for material, routing, parent-order, and lifecycle requirements.
Imports and published field changes do not have a universal one-click rollback. Keep the source file and approved mapping, record results, and plan corrections with the process owner.
See Forms, Reports, and ERP integrations.
Production-order file reference
Download the CSV example or equivalent XLSX example. Each contains one fictional planned manual order, DOCS-IMPORT-001, for ten units. Replace its dates with your training interval. Check that the number is unused before import; an existing number becomes an update candidate.
The example has no Material or work-center reference so it can be previewed without assuming database IDs. It creates planned manual work and may show manufacturing-setup warnings. For executable manufacturing, use a published Material/default Routing or provide eligible work-center codes and inspect the created operations. Follow Your first production order to prepare real training definitions.
Use .csv or .xlsx. CSV is UTF-8 with a comma separator and a header row; quote fields containing commas. XLSX reads the first worksheet, whose first row must contain the same keys. Use literal values rather than spreadsheet formulas. Keep ISO timestamps as text when exact timezone meaning matters.
| Header | Required | Value and behavior |
|---|---|---|
plannedStart | Yes | Parseable date/time; prefer ISO 8601 with Z or an explicit offset. |
plannedEnd | Yes | Same format, on or after start. |
quantityPlanned | Yes | Positive number with decimal point; no unit suffix or thousands separator. |
orderNumber | No | Stable text identity. An existing tenant order number is marked for update by preview; verify its selected scope before execution. Blank creates a new assigned number. |
description | No | Text; default empty. Include the complete intended value for updates. |
priority | No | low, normal, high, critical; default normal. |
status | No | Canonical draft, planned, released, in_progress, completed, cancelled; default planned. Lifecycle rules still apply. Use planned for training creates. |
materialId | No | Published Material's business code, resolved during creation. |
materialRefId | No | Existing Material's database reference, when supplied by an authorized read. Do not guess it or confuse it with materialId. |
explosionMode | No | none, singleLevel, multiLevel; default none. |
parentOrderNumber | No | Existing parent order number. Preview does not resolve a parent that is only another new row in the same upload. |
possibleWorkCenterIds | No | Comma-separated work-center business codes, quoted as one CSV cell. New manual orders use these for one Production operation. |
| Other header | No | A production-order custom-field key. Existing definitions supply its meaning. Execution creates an unknown header as an active text definition. Review every extra column first. |
There is no general unit, quantityProduced, routing-JSON or arbitrary object column in this browser importer. A Material supplies its own unit and published manufacturing definitions. For configurable products, use the existing custom-field keys and inspect the resolved preview; a filename or unrecognized column does not create a new business mapping.
Preview and execute the example
- In Production orders, open the import action and upload either sample file. Check the scope before uploading.
- Expect one row, quantity
10, prioritynormal, statusplanned, and row classification New ifDOCS-IMPORT-001is absent. A second upload after successful creation should classify it Update, not create another identity. - Review every header and row. Remove accidental spreadsheet columns. Fix errors before executing. Preview checks basic dates, quantities, priorities, status and existing parent numbers; material/routing/custom-field lifecycle validation also occurs during execution.
- Execute the reviewed file and read the result. Reopen
DOCS-IMPORT-001in the same scope and compare the persisted dates, quantity and description. - Do not execute the same example again unless an update is intended. A blank order number is unsuitable for repeat-safe file recovery because it requests a newly assigned number.
An update is not a sparse patch: execution writes dates, planned quantity, priority, description and the supplied custom-field values, and requests its lifecycle state. Omitted optional values can become defaults or replace the previous custom-field list. Export/record the current values first and supply the complete intended row. Material, parent, explosion and eligible-work-center columns are used for creation; they do not rebuild existing order steps on update.
Execution processes rows sequentially and is not one transaction. A later failure can leave earlier rows saved, and unknown custom-field definitions may already exist. The error response does not provide a complete per-row receipt ledger. Reconcile order numbers and actual saved values before preparing a correction file; do not blindly replay a whole upload. Duplicate order numbers within a file require correction before execution.
| Error or unexpected result | Correction |
|---|---|
| Missing required columns | Restore exact case-sensitive headers plannedStart, plannedEnd, quantityPlanned. |
| Invalid dates / end before start | Use explicit ISO timestamps and correct ordering. |
| Quantity invalid | Supply a positive numeric literal; remove units and locale separators. |
| Unexpected custom field | Remove/rename the extra header before execution; inspect any already created text definition. |
| Parent missing | Create/reconcile the parent first, then preview children again. |
| Manufacturing/lifecycle requirement fails | Correct the published setup or required values; inspect earlier saved rows. |
| Existing order marked Update unexpectedly | Verify tenant, scope and exact identifier; stop before overwriting it. |