BPMs not functioning after Kinetic upgrade

We have multiple BPMs that seem to have stopped functioning after our upgrade from Epicor 10.1.500 to Kinetic 11.1.200. This issue seems to be focused on the change from temp tables (tt) to the ds calls that were automatically adjusted at the time of the upgrade. We use custom code for the affected BPMs which we plan on slowly moving away from but I’m looking for any advice on how to get these references working again. Let me know what additional information would be helpful for troubleshooting. Thanks!

What version of SQL? I vaguely remember when we were testing Kinetic we realized that some of our BPMs had problems cause the test environment was still on SQL 2016.

The system looks for ttXXXX in your BPMs and renames them to ds.XXXX for you during the upgrade. If you have any custom code that uses ttXXXX as a local variable (not an actual tt table) it will rename those as well causing issues with your code.

4 Likes

Our SQL Server is 2019.

@ Doug C I’m pretty new to BPMs so I’m unsure where to check the BPM code against. What do you mean by “local variable”?

A declared object. E.g.:
var ttObject = new DataSet;

It could also be an alias

var ttrev = ttPartRev

It would seem that the conversion program is looking for anything with that prefix and running a very simple replace operation on it. “ds.rev” or “ds.Object” in the examples above will throw errors post-update since they’re not members of “ds” (unless you were doing something unwise), but the BPM layer.

This is the first I’ve heard of any of this, so in your shoes I’d lean on the “check syntax” button in each custom code block. It should point you towards which line is throwing the error.

3 Likes

@mc9306 Can you give us a specific error rather than tt to ds as an issue? All of my bpm custom code was converted without any issues from 10.2.400 to 11.1.200.10

In the bpm that is throwing errors add some Log.WriteEntry line like in this post to find the offending line. Also add a start/end exit to know which bpms are firing.

https://www.epiusers.help/t/bpm-logging-snippet/93004

2 Likes

That post has barely been up for an hour. Glad to know it may be of use, @gpayne ! :slight_smile:

2 Likes

I will definitely add this logging suggestion for these BPMs and I really appreciate the new process suggestion. As of right now, without that logging though, we actually aren’t getting an error. The process that worked in 10.2, auto populating Warehouse and Bin “On Part Change”, just no longer functions. The data does not autoload. Hopefully this logging gives me some new info.

1 Like

Which Specific UI and which BPM? Chances are also the underlying BO’s changed. I am assuming you are using the Classic UI still?

Also sometimes depending on the UI the User has a certain Auto-Retrieve flag turned off.
image

When you jump from 10.1.500 to 11.1.200 there may be a re-trace required.

This BPM is populating data in the Move Inventory Request screen. Here are some examples:

New BPM:

Old Custom Code:
image (18)

New Custom Code:
image (19)

@mc9306 I am with @hkeric.wci that you will have to look at the trace of the manual process to see what is different now. The code looks like it could have already been converted up from 9.05, but it is the same code as before just not getting the same changes made.

1 Like

We upgraded to Kinetic and it’s my understanding that ANY BPM which used the “Execute Custom Code” functionality needs to be re-coded as it will not work. You want to reconstruct it to utilize the existing constructs and totally get away from the custom code block. It’s a pain but necessary.

In addition I’ll give you a warning on any customization layers and BAQ-related dashboards which you’ll stumble across at some point with Kinetic. They will not “magically” function in Kinetic mode. With dashboards you have to manually deploy the Kinetic version and then manually establish a Kinetic-specific menu item which then runs the Kinetic version of the dashboard. Same thing applies with customization layers. You have to create a new menu item for the Kinetic version which allows you to activate the Kinetic version of the customization layer. There is a lot of manual conversion activity which needs to take place and Epicor hasn’t been exactly clear on giving a heads-up about the level of manual activity needed in a conversion to Kinetic.

I didn’t have that experience. It shouldn’t require any re-coding. Unless you are referring to the ttTable’s

There is also the WCF disabling that has to be dealt with. That and the ttTables were the biggest thing I’ve found.

To @MNlesta’s point, I haven’t seen any customization (Dashboard or otherwise) that was able to convert to the Kinetic UI. That will require manual interaction. Thankfully we still have access to the Classic to get these done.

It depends on what you are referring to as “Kinetic” v11 or the new web interface. In 11.1.200 classic client all of my bpms in method directives, data directives and ubaqs converted without issue and I have a few hundred and only a handful use widgets, but maybe I am fortunate.

I am assuming those bpms because they are server side will also work in the kinetics screens whereas the dashboards and screens will all have to be rebuilt. Although the new conversion 180 does at least now make you a layer from a customization.

I appreciate the discussion and help on this subject, everyone! We just started a contract with an Epicor consulting firm and I will most likely need some hands on training before I fully grasp all these suggestions but I will use them as a jump off for learning. Thanks again!