In External Company Configuration there is a checkbox labelled “Auto Accept Incoming Intercompany PO Suggestions” that is SUPPOSED to save you the step of doing that yourself. In this case, it doesn’t work. When I have that box selected, I get neither an ICPO suggestion nor a sales order in the receiving company, and this error shows up in the log:
System.InvalidOperationException: The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements.
(yes, there’s a whole bunch of addtional stuff after that if you’re interested).
If I DESELECT that checkbox, an Incoming ICPO Suggestion is created… and when I try to accept the suggestion I get a WARNING message that states, “one or more lines contains non-global part numbers, do you wish to review?” If I say no, it then lets me accept the suggestion and creates a sales order. My guess is that’s what’s causing the error.
I don’t want to make the part a global part, as it has different settings in the sending and receiving companies (one is stock and lot tracked, the other is NonStock and NOT lot tracked).
Any ideas on how to remove the global review message and allow the automation to do its thing?
We don’t use that option as we review the suggestions manually, but my guess would be that the parts need to be global in order for this to work. Assuming you don’t have the fields in question synced, you can have different stock and lot track settings in the 2 companies. You can have the part stock in one company and non-stock in the other.
Non-stock is one of many fields on the Part.Plant table that also exist on the Part table, and yes, you can change those from any company at any time on a global part, but only from within Part Site Details. Fields that only exist on the Part table, like TrackLots, can only be changed from the parent company that “owns” the part master.
Not syncing individual fields doesn’t allow child companies to change their values; it controls whether or not a parent company’s changes to those fields propagate to child companies. Global lock will let you edit Part table fields in a child company, but you have one chance to select it - immediately after the part is linked - and if anyone ever accidentally clears it and saves, tough, that’s it, you’re locked out.
It’s probably because I’m on a lower version (classic interface) or I’m missing something but in my case the fields just become editable if I’m not syncing them. I can then go and change the fields in the child company as I wish (Track Lots included). Track Lots does become read only once I have stock for that part.
Can you make the part global and not link it? I’m not sure if the logic checks to see if you have linked the part or not.
You can set what is controlled by the parent company by selecting the fields for the part table in the Global Table app. Based on these settings, the fields you mentioned won’t update in the child company if they are updated.
I would play around in a test and see what works best for you.
I can see 2. working, but only if all parts are created in the one company as lot tracked, linked in the other company without syncing TrackLots, and then the lot tracking requirement was removed in the first company… or done in the opposite direction. It would boil down to who needs to “own” the part table fields, really.
Of course, that’s assuming this isn’t a bug in the first place! I’ve never had the problem @Ernie is experiencing, and I’ve worked within a multisite (and later multicompany) business, and I’ve worked on multicompany/multisite implementations that handled the transactions between companies and sites in various ways depending on their needs. Part field maintenance was always a struggle in multicompany scenarios, and revisions were quite often difficult in multisite scenarios (I know, I know, alternate revisions, but sometimes things like a shared engineering file vault in an on premises Epicor environment or the difference between what manufacturing wants from a revision and what engineering wants from a revision can complicate that quite a bit).