Are Epicor Widgets Broken? šŸ¤

One more thought. While we are sitting here debating whether code or widgets are theoretically / inherently better, at the end of the day it comes down to execution. A well crafted chain of widgets is better than garbage code. And well written clean code is better than a nightmarish impossible to follow chain of dozens of widgets doing things like joining Db tables to in-memory tablesā€¦

4 Likes

Agree. Moreover in some cases UpdateExt in magnitude slower than a few Update calls :(.

Wow. You are one of the quite small team of SC users! Funny, it is another product where I participated in the original design :slight_smile:

Sorry, it is a barā€™s talk thingā€¦

1 Like

You are lucky. As you can see even in this thread others had such issues.

Wow!
Honestly I like SC. Not even sure why the push for the very expensive Jitterbit. I dig SC its not bad. Weā€™ve done over 30 complex workflows.

I have the next 2 days off for Holiday. I dont have a life, I can debate all day long. Plus im too broke to do anything outside of my front yard :smiley:

2 Likes

Yet another theme for barā€™s talk :(.
The main reason - SC technically and technology obsoleted already.

1 Like

This is the main way I learn.

Followed by using dotPeek, dnSpy, Reflector or owning the SDK for a wealth of code examples.

Not sure how folks on SaaS do it

Need to comment aboves. Starting with 2021.2, BPM stops dumping generated sources by default.
You can either enable it on per-method (MD)/per-table (DD) base. Or enable old behavior with customizationSettings section of web.config. Documentation describes both ways.

Also, if BPM compilation fails, then BPM dumps sources independently from other settings.

2 Likes

Yep I saw that you can enable them individually or

1 Like

Given that @SAD is an advanced Epicorean, this is terrifying.

I can confirm there are a lot of places that activating a BO method without this simply doesnā€™t work.

going from 10.2.100 to 10.2.700, most of my predecessorā€™s Db.Validate(); calls broke. The fix was to replace with BO calls (obviously preferred) or by explicitly specifying just what was being updated with ```Db.Validate(myVarName);``

Also some BO.Update(ref blahBlah); broke until implementing the BeforeImage concept found here.

Another one has been foreach(from var thing in Db.Table blah blah select thing){ do stuff} stopped working in some, not all, cases, and I had to first do var thing = (from th in Db.Table where blah blah select th).ToList()
and then foreach the list by itself.

Iā€™m not defending widgets in their current state (actually hate 'em) but I can see that having Epicor test and vouch for them before upgrading is pretty useful, because the above examples are mostly trial-and-error.

1 Like

Whenever I need to iterate, I use a custom code block. Everywhere else I try to use widgets. Itā€™s easier for others to maintain, as not all of IT/power users are C# developers and the flow chart design is easier for them to follow.

The only other exception where I use custom code block is when a condition block destroys data. I have to use custom code blocks in order to do a simple condition test to make sure we donā€™t lose serial numbers.

I have had custom code blocks break on upgrades, so I keep track of the BPMs that have those so I can easily target those for testing on upgrades.

2 Likes

@jdewitt6029 I am sure there are some BPMs from the uplift to Epicor 9 that have a tt table joined to an ERP table.

Me (being new to Epicor) probably just converted it to C#, checked to make sure it was working, and called it a day. Not sure if this is stated in any customization guides or anything. Would be a great addition.

Same mostly. Iā€™ve had very minor things break but nothing near as bad as screen customizations. On a major version I might spend 1 hr fixing little BPMs here and there with custom code and another 9 on screens. I also use custom code blocks heavily and avoid widgets in most cases.

1 Like

Yeah, I curled up in front of the streaming TV fireplace with Orlicky and Plosslā€™s MRP books. I decided to start with Orlickyā€™s first edition and get a chronological overview of the state of the art through the decades. :crazy_face:

1 Like

Manā€¦

Amen, Jason! I would LOVE a college-type course on Epicor BPMā€™s & customization. Something where we build on weekly, have homework & test, a final project, the whole deal. I think that would close the loop for a lot of us non-computer science folks, and give enough time to learn the why, rather than rush through an example or two like Insights Extended Ed.

Having a teaching plan where each week we get a complete understanding of why something is done a certain way before building on it would be huge (at least for me). Rather than rote memorization of ā€˜do this, and it worksā€™.

Not sure if Epicor or a third-party is willing to do that, but please take my $! Iā€™m sure there are others in the same boat that fell into coding Epicor throughout their career trajectory, and didnā€™t come from a CompSci background.

Sorry for the rambleā€¦

5 Likes

Andris, way to hit the nail on the head. That is exactly what I wish we could learn about and be taught. Someone needs to start it on Coursera!

I will teach it if I can get 50 sign ups at 350$ :slight_smile: I will even buy fancy software, cameras and do a live workshop.

4 Likes

:star_struck:
:exploding_head:
:partying_face:

1 Like