Current situation or problem:
In order to facilitate migrations in a timely and efficient manner, the Invoice Storage module needs to have batch APIs. POSTing, PUTting and DELETEing records one HTTP request and database commit at a time is unusably slow for large data sets.
- Bulk Create/Update for Invoice Lines
- Bulk Delete (with CQL query parameters) for Invoice Lines
- Bulk Create/Update for Invoices
- Bulk Delete (with CQL query parameters) for Invoices
Out of scope:
Batch APIs for batch voucher export configuration and documents are not required. The anticipated order of magnitude for these record sets is not sufficient to require batch handling. The individual record APIs are sufficient.
- Initial Data Migration, including iterative data load/delete
In order for these APIs to be effective, they need to bypass the business logic and go directly to the storage module. This means that bulk creation of invoices will not connect data to the Orders, Receiving or Finance modules. The user of these APIs is responsible for maintaining data integrity; documentation needs to reflect this.
Can the Invoice module function properly with just Invoices and Invoice Lines, or do vouchers and voucher lines need to be created as well? If so, then these would probably need bulk APIs, too.