Learned Something New - Row Rules

Thought I would share as I was banging my head against the wall today trying to get a Row Rule to work.

I had created a Row Rule where I was seeing if a field value was equal to ASME_c. Built it, saved it, and it worked fine.

Next, I created a Row Rule that I was seeing if a field value was equal to 20. Built it, saved it, and it did not work. I spent all sorts of time checking spelling, fields, and such. Finally got to a point where I tried equal to “20”. Still did not work. How about equal to ‘20’? Bingo! For some reason, that worked. No idea why.

Another funny, because you have to laugh or you’ll cry, when you open up the Row Rule again, the ‘’ are gone. But the Row Rule still works.

Thought this might save someone else.

5 Likes

This is why I can’t stand application studio :face_vomiting:

2 Likes

At first I thought is sounded like an issue of Epicor choosing the wrong equality operator:
20 == '20' returns true
20 === '20' returns false

BUT

20 == "20" also returns true

So that’s not it…

The requests for comprehensive documentation have been rejected with responses like “there’s too much to document it all!” … but even starting with basic top-level-only documentation over all of App Studio would expose a lot of this inconsistency.
The way it is now, every field needs a tool-tip example of what is expected, because any field could be totally different from the others…

9 Likes

So, with classic customization, whenever there were syntax quirks or wizard issues you could always sort of drill down into the C# or WinForms documentation and just figure it out on your own.

What does “figuring it out on your own” look like in the world of Application Studio? Should we be learning JavaScript? Would that even help very much? @hmwillett

1 Like

Use ‘Everything’ by VoidTools and search through their native JSON files on the server. That’s all I’ve ever done.

3 Likes

and C# is strongly-typed language, so the compiler / code validator knew what type of data it was looking for and could tell you “Hey, you’re comparing a number to a string - you can’t do that!” … which would be helpful in this situation

It would probably help to learn at least basic JavaScript - to learn the quirks of comparisons and the ways that data can be represented and used…

BUT

App Studio is not all JavaScript! Some of it is pseudo-SQL and some is … something else?

2 Likes

And if you can’t search the server??

2 Likes

Happy Sesame Street GIF by ProBit Global

6 Likes

Ahhh, very interesting. I just found them in the MetaUI folder.

So when you get stuck on something you’re basically just trying to find an example somewhere where the same problem was already solved in one of the base application UIs?

This at least gives me hope, I can live with that strategy.

1 Like

Pretty much.
It’s been useful for figuring out how to use various widgets and syntax expected.

3 Likes

@hmwillett - Great suggestion! Can you share a simple example of how you used Void Tools - Everything search to get unstuck on something?

The whole AppStudio syntax quirks has my head spinning, and I’m trying to compile a list of ‘when doing this, use that syntax’ with examples to help my future self (and co-workers).

2 Likes

Typically, I just search for the widget in question to see how they set it up. Finding a good example would show you both how they configure it and what syntax they used.

Here’s an example for a dataview-condition:

Pick one. Any one. If you don’t find what you need, go pick another one.

7 Likes

Ok, I would appreciate it if you stopped sharing tools that I cannot use. If I can’t use them, no one can. And this is my topic, so… :laughing:

Shut It Down 30 Rock GIF

9 Likes

Nice tip Tom.

archer supervisor GIF

4 Likes

The Rookie Flirt GIF by ABC Network

We’re :poop: outta luck. :man_shrugging:

2 Likes

Now, now, now. All of the MetaUI content is available via REST and uncle Kevin (@klincecum) has got you covered.

Export the Kinetic System layers and Custom layers. Pop that :poop: into Git and search away.

8 Likes
5 Likes