Invoices, CurrentInvoices, Orders and Quotations all contain lines. If you want to sync your application with e-conomic, the only way to fetch the lines is to get them one sales document at the time. This is very chatty and the cost of going across the network alone will slow you down.
The SOAP API offers methods to fetch the line data in bulk by using CurrentInvoiceLine_GetDataArray for example, but you still need to ask for the CurrentInvoiceLineHandles once for every CurrentInvoice.
To make this easier we have exposed four new methods in the SOAP API.
- InvoiceLine_FindByInvoiceList
- CurrentInvoiceLine_FindByCurrentInvoiceList
- OrderLine_FindByOrderList
- QuotationLine_FindByQuotationList
These four methods each take an array of the appropriate sales document handles, and returns all the lines that match these. The returned array of lines is sorted first by the sales document id, and then by the line id. That way you can fetch all the line data in one go, with for example CurrentInvoiceLine_GetDataArray. When you have all the line data, you can decorate your sales document with the the relevant lines, and you only have to make two requests to the API as opposed to one for each sales document.