BPM fill table vs Custom Code Benefit?

Curious if there is any benefit of using the Fill Table to update a field on another table instead of just using custom code in the BPM to update it?

Upgrade proof (mostly)
Also potentially performance

2 Likes

If you ever move to the MT cloud you cannot use custom c# code in BPM’s, something to keep in mind.

1 Like

I think MT Cloud has been off the price list for about a year now. All new folks are Public Cloud aka Dedicated Tenants. And if it was on the price list, don’t do it. :shushing_face:

1 Like

Fill table widget is most foolproof, and recommended. There are however some times when it may not be as efficient as writing c# code.
Most of the time, this lack of efficiency is not a problem… where it CAN be a problem is when there is a process that does something in mass… example, we had a BPM that used the widget, and the result was taking about 100-200 ms (less than 1/4 second)… but, when running ECC, and adding a 100 line order, 200ms turns into 20 extra seconds. rewriting in c# resolved the problem.
So… lesson learned, look for how often or if something is in mass, and optimize those… otherwise, use the widgets.

So I am a doing this correctly? I am trying to update the samplespending_c to True when they save a UD07 record. Seems right to me, but it is not updating.

Agreed. Most Epicor BPMs don’t receive Multiple Dirty Rows… The BPM tends to receive only 1 record at a time in alot of BPMs (not all!) Case by case basis… so efficiency usually in either case shouldnt be much of a problem… even in custom code, often making it even unecessary to do a foreach() vs .FirstOrDefault(). But better safe than sorry. I still foreach :slight_smile:

I think we are lacking information to tell whether this is done right. doing a “fill” by itself doesnt necessarily update data in a table, unless the table you are “Filling” is already being updated.
You CAN do an update and then later call UpdateEXT and update a separate table… many options.

I am filling then invoking Updateext

I Quote @Rich

Try using Update Table by Query instead of Fill Table. GetNew will provide a valid row that can then be Updated. Fill Table is generally for use when you have an empty table and need to initialize.

Try using Update Table by Query instead of Fill Table.

1 Like