Import via data transfer
Updated
Stand-to-stand copy of business rows for an implementer. You export dictionaries, link tables, and documents from one tenant and import them onto another. This is not the seed JSON the model ships — that door is Apply a data package. This is not a call out of the tenant and not OData.
Note
Ribbon → Developer → Testing & tools → Workspace → Data transfer. The ribbon caption is Data transfer. The page itself is still hardcoded Russian. You need the Developer permission: the route is the Developer area, and
POST /api/data-transfer/export|importrequires it.
How to#
1. Open the page. The title is Перенос данных. Entity picker
groups: Справочники / Линк-таблицы / Документы. Buttons, as
shown:
Добавить сущностьЭкспортировать пакетЗагрузить файлПроверить (dry-run)Применить- checkbox
zip
The page says the same thing the engine does:
Выгрузка справочников, линк-таблиц и документов с любого стенда и загрузка на любой.
Ссылки едут бизнес-ключом. Zip с несколькими JSON применяется по имени файла.
У документов табличные части переносятся; движения не копируются.
2. Export. Press Добавить сущность, pick the entity, set a
business key, choose mode upsert or insert (those two identifiers
are English on the Russian page). Optionally tick zip. Press
Экспортировать пакет.
Export with no entity plus key fails in the page:
Добавьте хотя бы одну сущность с бизнес-ключом.
3. Import. Загрузить файл (JSON or zip). Проверить (dry-run)
validates without writing. Применить writes. A zip of several JSON
files is applied in file-name order.
References travel as the target's business key, not as the source
instance MetaId. Those Guids are not portable. Import re-resolves the
key to the target stand's MetaId.
Documents copy the header and the table parts. Register movements do not copy — they are regenerated only if you post on the target. The copy lands as a fresh document: number, status, and subtype are not carried.
mode:
| Value | Match by business key |
|---|---|
upsert (page default) |
Update the existing row |
insert |
Keep tenant-edited values; fill blanks only |
Seed packs force insert inside ApplyAsync. This page does not.
The business key must not be a translatable Name. A second language
then creates a second row — the same trap as
Create a data package. Key on Code /
Days / a stable pair.
Warning
This page is not
IOutboundGatewayand not a data entity. A posted document that must reach another system is Integrate with a third-party REST API. An outside shop that CRUD-s our records is Call ZuloOne from another system. Use this page when you are copying one ZuloOne stand onto another.
upsertoverwrites. If the tenant already edited the row, that edit is gone. Seed you want the tenant to keep uses Apply a data package (mode=insert).
What's not there yet#
The Data transfer page is not localized. The English ribbon still opens the Russian labels above.
Register movements are not in the package. Post on the target if you need them.