There’s some quote about doing the same thing and expecting different results…
Every few months I do an upload into “PartPlant” by DMT to update our HS tariff codes because there are new parts, new components, changed vendors or materials, or because of bureaucracy of opinions.
We have a custom field HSCommodity_c in PartPlant, for some reason that I’ve never asked - it predates me and always works.
Except once in a while, when I upload, the entire list fails with “Object reference not set to an object” or something like that. I’ve been meaning to catch it “the next time it happens” and I usually forget, but this time I remembered.
Here’s what I tried. Nothing made any difference except the last item.
Removed all formatting in case the sender forgot to;
Deleted meta comments in the spreadsheet;
checked the list for leading and trailing spaces;
checked the headers for leading or trailing spaces;
copied everything into a new CSV, carefully making sure there was really no formatting;
went back to the last upload and compared it;
Finally, I hit on the magic fix. By this time I had Clear - Reload - Process - Clear - Reload - Process in muscle memory, and I sat there doing that absent-mindedly while thinking back to other times when it had failed and then worked.
All of a sudden, DMT simply changed its mind, and loaded the list.
Nothing but the rain, Sir. Then grab your gun and bring in the cat.
It has been a while since I DMT’d a lot, but I always only solved the first issue and retried. I called the rest of the errors blowback issues and didn’t look at them.
When i was taught DMT the first rule of troubleshooting was to do the same change in the UI to see if there was an issue with the data being entered or a bpm getting triggered.
There are a couple DMTs where the error is true the first time and bogus after that. I’m sorry I don’t know which ones off the top of my head.
But to explain better, you have a list of 500 items. First 200 go in fine. Row 201 has an error and DMT rejects it. Row 202 is actually fine, but DMT rejects it , too, for the same error as 201. And it just keeps reject everything in that load after it. So you beat your head against the wall trying to figure out the systemic problem and it turns out it’s only that one (or maybe a few others).
I haven’t had too much experience with DMT not running and then deciding to do it. However, I have been burnt many a DMT time with case sensitivity on PartPlant uploads that does not exist on part upload. Fun stuff.
I actually had this experience yesterday with a Part DMT. It gave me maybe half a dozen errors, with four typos or spacing issues and like two being “Object reference not set to an instance of an object.” I ran the whole errors reprocess file again thinking it would just fix the typos and I would come back to the others later but to my surprise the parts with object reference errors also went in successfully.
So yeah I actually have no idea what’s going on there, it happened early enough in the process for me that my reaction was just “Oh. Well okay, moving on.” Sorry I don’t have more to offer you other than confirming that you’re not insane.
DMT is a great tool. When we went live with Vantage 8, it didn’t exist. We tried macro recorders to load parts into the system but it would do exactly what you’re seeing here. I remember the sales rep saying how the UI team and the Application Team were separated during the design to ensure no logic leaked. I thought, “Hey, this is just .Net.” So I opened up my Visual Studio 1776 (I’m old), created a VB project, added references to the business objects and let the auto-complete figure out the rest. I was doing a minimal part add to a single site company. I would throw errors into a separate file and continue.
But then DMT came along and had premade templates for complicated objects and multi-threading goodness. At its heart, DMT is a batch oriented loader - just like SQL Import, etc. I’ve never used it in a regular business case like other users. I don’t think it’s the right tool for everything. And now with Epicor Functions, I can do more of this day-to-day data import with smarter processing of defaults, conditional values, and better error handling. So even though I grew up on batch processing, I’m seeing the benefit of handling events as they come along instead of processing in a batch. It simplifies the flow and logic - also lends itself to cloud processing.
Cannot address your DMT issue but will pass it on. Have you considered creating an Updateable Dashboard to do your loading/updating data? You can copy to Excel, make the update, Paste Update. Or you can do an Uptake from an Excel spreadsheet. Gives you more control over what you are trying to do…