It’s been a pretty intense week on this Sync console upgrade, it’s coming together quite nicely even though I’ve had to add two additional object types (Customers and Suppliers) to sync. Kind of forgot that you can’t really sync the orders unless the customers are done first.
Not sure who would bother reading this but here’s a brief history of the app. It’s purpose is to import orders from our ERP software’s (SAGE) old school and very texty database design with very little input validation, over to our own in-house weighbridge system database.
Version 1 didn’t actually look like anything, it was a scheduled series of SQL stored procs that fired off every 10 minutes.
The main problem with it was there was no way of warning the user if there was a problem with the order, so we wouldn’t know it had died till there was a truck waiting to leave with a load for the broken order.
Version 2 moved it out to an application that the users could run at their leisure, it logged out all sorts of warnings and information that the users mostly ignore.
It still runs all sync tasks as one big batch though, there’s no way to cancel half way through or selectively sync a single item.
It served it’s purpose but is looking a little weathered.
Version 3 is prettier, about a million times faster (due to using direct to DB providers rather than datasets and more intelligently selecting what to sync), fully threaded, cancellable and able to do a single item if you need.
Hopefully this version will last us a while… once it’s finished, still needs some more testing.