RequestsMigrator#
Migrate open requests from legacy systems into FOLIO using the circulation APIs.
When to Use This Task#
Migrating active hold/recall requests from legacy ILS
Preserving request queue positions
Creating requests via FOLIO’s circulation APIs
Attention
This task creates real circulation transactions. Ensure items and users have been posted to FOLIO before running.
Configuration#
{
"name": "migrate_requests",
"migrationTaskType": "RequestsMigrator",
"openRequestsFile": {
"file_name": "requests.tsv"
},
"startingRow": 1,
"itemFiles": [
{
"file_name": "folio_items_transform_items.json"
}
],
"patronFiles": [
{
"file_name": "folio_users_transform_users.json"
}
]
}
Parameters#
Parameter |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
The name of this task. |
|
string |
Yes |
Must be |
|
object |
Yes |
File definition with |
|
integer |
No |
Row number to start processing. Default: 1 |
|
array |
No |
Transformed item files for pre-validation |
|
array |
No |
Transformed user files for pre-validation |
Source Data Requirements#
Location: Place CSV/TSV files in
iterations/<iteration>/source_data/requests/Format: Tab-separated (TSV) or comma-separated (CSV) with specific required columns
Required Columns#
Column |
Description |
|---|---|
|
Barcode of the requested item |
|
Barcode of the requesting patron |
|
Type of request (Hold, Recall, Page) |
|
Date the request was placed |
Optional Columns#
Column |
Description |
|---|---|
|
UUID of the pickup location |
|
Request expiration date |
|
Item or Title level request |
|
Hold Shelf or Delivery |
Example Data#
item_barcode patron_barcode request_type request_date pickup_service_point_id
1234567890 P001234 Hold 2024-11-01 a77b55e7-f9f3-40a1-83e0-241bc606a826
0987654321 P005678 Recall 2024-11-15 a77b55e7-f9f3-40a1-83e0-241bc606a826
Pre-validation#
If itemFiles and/or patronFiles are specified, the task validates requests before attempting to create them:
Missing items: Rows with item barcodes not found in item files are set aside
Missing patrons: Rows with patron barcodes not found in user files are set aside
Failed records are saved for review.
Output Files#
Files are created in iterations/<iteration>/results/:
File |
Description |
|---|---|
|
Records that failed validation or posting |
Report files |
Migration statistics and error logs |
Examples#
Basic Request Migration#
{
"name": "migrate_requests",
"migrationTaskType": "RequestsMigrator",
"openRequestsFile": {
"file_name": "requests.tsv"
}
}
With Pre-validation#
{
"name": "migrate_requests",
"migrationTaskType": "RequestsMigrator",
"openRequestsFile": {
"file_name": "requests.tsv"
},
"itemFiles": [
{
"file_name": "folio_items_transform_items.json"
}
],
"patronFiles": [
{
"file_name": "folio_users_transform_users.json"
}
]
}
Running the Task#
folio-migration-tools mapping_files/config.json migrate_requests --base_folder ./
See Also#
ItemsTransformer - Creating items first
UserTransformer - Creating users first
LoansMigrator - Migrating loans