Batch service
To import a batch of data, you create a Batch
object using a service, then run a import loop to transform records and commit imported data.
service haplo:data-import-framework:batch
This service take three arguments:
let batch = O.service("haplo:data-import-framework:batch", control, files, errorCallback);
control |
A control file, as a JavaScript data structure (not serialised JSON). |
files |
An Object with properties naming the files, and BinaryData objects as the values. |
errorCallback |
A function called with two arguments, the error message and the current Record. |
The service returns a Batch
object, which is used to run the import loop.
Example
// Control file is a JavaScript data structure let control = { "dataImportControlFileVersion": 0, "model": "haplo:person", // ... }; // Map of name to BinaryData object, eg result of O.file() let files = { "people": O.file(...) }; // Callback function to output error messages let errorCallback = function(message, record) { console.log(message); }; // Create a Batch object let batch = O.service("haplo:data-import-framework:batch", control, files, errorCallback); // Run the import loop to import data batch.eachRecord((record) => { let transformation = batch.transform(record); if(transformation.isComplete) { transformation.commit(); } });