Using SuppressedTransactionScope in Kinetic 2024.2

We’re looking to upgrade to Kinetic 2024.2, and we’re using SuppressedTransactionScope in a couple of places in our customizations.

Was this class moved to a different library? It appears to no longer be in Epicor.System.dll.

try Epicor.Data.SuppressedTransactionScope

That’s the namespace for that class. I need to know which DLL file the class resides in. It was in Epicor.System.dll but it apparently was removed from there.

Where are you trying to use it? It’s already referenced in BPMs and Functions.

It’s in an external library that called from a BPM.

It looks like that class is just a wrapper for this:

using (var scope = new TransactionScope(TransactionScopeOption.Suppress))
{
   scope.Complete();
}

I suppose I could just go with this instead.

To avoid this in the future, maybe you can wrap a REST service around that external library and then make it like every other Kinetic integration. Minimal APIs are fairly easy to write these days, and you can shape your data so it’s easier for Kinetic to consume.

A lot of our BPM code is in an external library because it was easier to debug in a development environment, as well as it being easier to reuse code. The library was created before Epicor added a lot of other functionality (REST APIs, Functions, etc.).

You won’t loose that with a minimal API!

Understood. Just thought I’d mentioned it for the future because, as you’re finding, highly coupled code is much harder to upgrade.

We also have an SDK license, which has been (ab)used quite heavily, so decoupling everything would be a monumental task.

2 Likes