There are a number of ways of importing ledger journals but with most you will realise it is quite slow with a lot of lines (100 plus lines).
I have put a couple of tips to boost the performance. Remember these are bulk creation of journals and not posting issues. That is a whole other topic.
Obvious but often forgotten. Remember that journal name setup – you have a number of options to generate the voucher number.
If you leave it to generate when it balances – then this will kill your performance.
On the insert method you will there is tax calculations which are deleted and recalculated every time you insert. If you can avoid calling this method and call it only for the last line per unique journal number, voucher number, and invoice.
I won’t go into detail on how to code it.
option 1: You can add a parameter and check that.
option 2: Or you can write your code so the tax is not set – do your insert. Then set the tax groups after. But remember you will have to recalculate it for the unique journal,voucher,invoice.
ledgerJournalTrans.TaxCode = _ledgerJournalTrans.TaxCode;
ledgerJournalTrans.TaxGroup = _ledgerJournalTrans.TaxGroup;
ledgerJournalTrans.TaxItemGroup = _ledgerJournalTrans.TaxItemGroup;
// need to set the tax codes after the insert because the taxes are calculated during the insert if the tax codes are set.
These are a couple of simple tips that will have an impact on the performance of your imports.