By using this website, you agree to our Terms of Use (click here)
In Acumatica, you can now have a Tree Structure on the Item Classes like this:

But when you go to a report, like the Inventory Balance (IN615000) report, and click the Lookup, the list is flat without any tree structure:

So I was curious, how does the Inventory Balance (IN615000) report know to include FOOD-300-PKGFOODS when I run the report for the FOOD Item Class? It does which is cool, but the "how" is what I wanted to know.
Looking at the report in Report Designer, it appears that the way it knows is by using the RLike Condition:

Which translates into this in SQL:
[INItemClass_INItemClass].[ItemClassCD] LIKE 'FOOD %' OR 'FOOD' IS NULL

So, that requires every Item Class that is underneath a Parent Item Class to begin with the same characters as the Parent Item Class. Very interesting.
Then I was more curious, what happens if I change Item Class ID on an existing Child Item Class? To find out, I changed FOOD-300-PKGFOODS to FD-300-PKGFOODS.

When I press Save, it automatically moves out from underneath the Parent Item Class:

And now, when I run the Inventory Balance (IN615000) report for the FOOD Item Class, the FD-300-PKGFOODS Item Class is not included.
So I learned two things:
1. RLIKE is basically a Begins With condition.
2. The new Item Class Tree Structure is purely based on the leading characters of an Item Class, not a true parent/child relationship. At least that's what it looks like to me.
