Relevance to find levels of value

Looking for a way to tag a machine for a certain level of an applicablity.

We have a series of fixlets that have relevance for a certain client setting value. Level 1, Level 2 and Level 3 with the options to add additional levels later. That is the trick, all higher levels include all lower levels and if we add a new level, we dont want to have to go back and change the relevance.

Currently, I would have to change the relevance for each new level. Here is what we started with…

exists setting "EM-H2-LVL" of client AND value of setting "EM-H2-LVL" of client as string = "Level 1" OR value of setting "EM-H2-LVL" of client as string = "Level 2" OR value of setting "EM-H2-LVL" of client as string = "Level 3"

Also, I would prefer to get rid of the “OR” “OR” or “OR”. :blush:

Any system in level 3 would need to be relevant to all lower levels fixlets as well (Level 1 and 2)

Any way to make the relevance sleek and efficient?

If I understand correctly, the level 1 relevance should be true only for Level 1 machines, while the level 2 relevance should be true for Level 1 as well as Level 2 machines, and so on.

I’m not sure why you would need to modify relevance later on when you add new levels. The Fixlets for Level 2 machines won’t apply to anything above level 2, right?

Try this approach - using your Level 3 relevance as the starting point:

(exists setting "EM-H2-LVL" of client) AND (("|" & value of setting "EM-H2-LVL" of client as string & "|") is contained by "|Level 1|Level 2|Level 3|")

Correct. …

Level 1 machines only apply to level 1 fixlets
Level 2 machine applies to level 1 and 2
Level 3 machines applies to level 1, 2 and 3 but nothing higher

1 Like

This is much cleaner and I like it much more. It will still have to modified later to add higher levels but that is not a big deal. I can make this work.

I just shut down my deployment for the day but I’m thinking of something along the lines of

exists setting "EM-H2-LVL" whose (following text of first "Level" of value of it as trimmed string as integer <= 3) of client

…for a “Level 3” Fixlet, where a Level 2 Fixlet would compare <= 2, etc.

1 Like

@JasonWalker’s approach is also quite good. I’m still not sure why your Fixlet relevance would change if you add more levels to your business process. Perhaps you have Fixlets that should apply only to the “top-most level” and you’re re-classifying your machines to provide more granularity?

1 Like