Model
When configuring a data import, start by reviewing the Model.
Choose the correct model for your data import. The user sync always uses the haplo:user-sync
model, but other data import processes and REST APIs can use any model provided by your application developers.
Install the haplo_data_import_auto_models
plugin to enable simple models based on the types of object in your application. After installation, select the required types:
Model administrative interface
For each Destination in the Model, the model page shows:
- The Destination name for use in Control files
- Whether it depends on another Destination
- Whether it’s an optional destination that does not need have to have any data, or is a pseudo-destination which is used to form structured values or load other destinations.
- A list of all the Names in that Destination
The columns in the Names table are:
Name | The name which should be used in Control files to refer to this value. |
Type | The data type of the value. |
MV? | Whether this Name is multi-value. |
Req? | Whether a value for this Name is required. |
Description | A short description of the values expected. |
Some data types will have actions in the right column:
- Map links to a page which generates example control file mappings for
ref
values.
Making Destinations ready for data import
Before data can be set using the Names on a Destination, the Destination must be made ready for data import. The method depends on whether you are changing existing data in the application, or ingesting new data.
The User sync automatically makes Destinations ready, so you must not use new
or load
instructions.
Ingesting new data
You must explicitly tell the data import framework that the Destination should create new data, using the new
Instruction.
Loading existing data for modification
The load
Instruction loads existing data for modification. This is a two step process, firstly setting the ‘ref’ (ID) of the object in a pseudo Destination, and then using the load
Instruction to load the object into the Destination.
This is separated out into two steps so the full data transformation capabilities of the data import framework can be used to determine which data to load. For example, the haplo:username-to-ref
value filter can be used to load user profiles by their username.
See the load
Instruction for an example.
Don’t use load or new on dependent Destinations
When a Destinations depends on another Destination, you should not use new
or load
instructions for those dependent Destinations, as everything happens automatically.