Epicor 10.2 Async BPM Process

I am facing some issues with BPM’s that are executed asynchronously. Some of the processes are getting stuck and does not come into notice. I know that this is a know bug but does anyone have alternative or suggestions here?
We have several async BPM process one of it is part settings synchronization across all companies. Also the user who is updating part setting in one company does not have access to all companies hence we use user impersonate option and run this Part synchronization process asynchronous using the current user session.

we are running Epicor version 10.2.400.14.

Any input on this would be appreciated.

1 Like

Why don’t you use global parts?

But no there is no work around the BPM async process has been broken for years :grimacing:

2 Likes

Initially, We did use global parts and multi company process but eventually the records were also getting stuck in IntQueIn and IntQueOut tables hence we decided to build a separate program.
But again, there are several process that we run async, part setting was one of them.

Sad, Epicor have not yet not yet solved this problem :pensive:
At least finding the reason to stuck would also help.

Edited:
What would be best approach to create sales orders and purchase orders in other companies when manually created in one company.
Note: User does not have access to all companies.

I would seriously reconsider using multi company it can drive orders in other companies with inter company trading
Etc

Thanks Jose!
Indeed it is a good option but from my past experience even Multi company processes are getting stuck. Records get stuck in IntQueIn and IntQueOut tables and one has to run multi company manually to make it work (scheduling of multi company process won’t help), even this won’t help for us.

More of a comment around async code execution in general. We use 1 that is core to “keeping the lights on” and uses the CustShip BO. I noticed that if you wrap your entire code block in a try-catch, the task will be removed from the ice.bpactionqueue in the event of an error from the BO or SQL lock. I tried the same process without this and our task in this table also got stuck. SQL Locking, and certain BO errors will prevent the task from being removed from the queue.

We have been using this async bpm for over a year and have not had any instances where the ice.bpactionqueue record did not get cleared out, even on an error. We also had instances where the task agent pooped and on restart picked up the exact data in bpactionqueue flawlessly

If you are purely using widgets, that I have no recommendation on.

TLDR: Use sparingly and only after extensive testing.

1 Like

Thanks Jeff for the valuable input, will surely check and try this.

Since V8, Async BPM has been a bit unreliable. In the Progress days, they used a Java-based messaging product (forgot the name) but was very reliable.

This is where web-hooks would be EXTREMELY useful. They are a top-requested feature and CDC seemed to be the beginning of such a capability but haven’t seen anything since. It would be the third leg of integration after REST and Epicor Functions to make Epicor/Kinetic a first-class integration machine.

Or use Service Connect :slight_smile:

indeed, even after using try catch block it is getting stuck. :slightly_frowning_face:

We do have service connect but we are short of service connect license usage. :grimacing:

Write log file for any Exception in BPM, you can check the log file for progress or failure and step where it’s getting fail.

I’ve been using Multi-Company for 7 years and we have many companies running on it. You can run Continuous which will pile through (not the best option but it will keep going).

But the answer to records getting stuck is because the data is bad. Folks need to think about their setup data and govern it. Not everyone should be able to setup a Terms Code. it should be requested and configured across all companies etc…

Do I think MC in Epicor is kind of crap, I do, but it works when done right, but its still crappy – perhaps one day Epicor will simple treat Multi-Company as “EDI”.

1 Like

Certainly reduce the number of import/exports! Just rely on REST for everything and be done with it. :man_shrugging:

IIRC, the multi company direct server process had a limit of 100 transactions per batch. If you have it running every X minutes, and the queue grows larger than 100 records in that time, then some will be pushed to the next batch (and the next batch, and the next…). Schedule the process often enough so the batches don’t roll over. Take a look at the logs and see if that’s happening!