Report Baseline Source Fixlets where Applicable Computer is Member of Group

I have a computer group called “TestGroup”, which contains 2 computers:
computerA
computerB

I have a relevance snippet, where I am attempting to query the fixlets within a specified Baseline:
sets of source fixlets of components of component groups of bes fixlets whose (baseline flag of it = true and name of it = “My February baseline”)

My requirement is to take the above, and extend the relevance query to ONLY report the fixlets where the applicable computer of them is a member of the TestGroup. Basically, I just want to report on Fixlets relevant to the computers in my group.

I have tried many ways to do this, but cannot get it to work. I have only been able to report a list of all computers of a group, but I cannot work out how to then check if the applicable computer for the fixlet matches one of those computers returned as a member of the group.

Specifically this is my current Relevance:

unique values of (id of item 0 of it as string & “||” & name of item 0 of it & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of (applicable computers whose (exists name of it) of it, ("<A name=%22" & name of it & “%22 href=%22” & link href of it & “%22 target=%22_blank%22>” & name of it & “”), (if (exists source severity of it) then ( if (source severity of it as lowercase contains “” or source severity of it as lowercase contains “<n/a>”) then (“Unspecified”) else (source severity of it) ) else (“Unspecified”)), (if (exists source release date of it ) then ((year of it as string & “-” & month of it as two digits as string & “-” & day_of_month of it as two digits as string) of source release date of it as string) else “1000-01-01”), (if (exists category of it) then (if (category of it as lowercase contains “”) then (“Unspecified”) else (category of it as string) ) else (“Unknown”)), (if (exists download size of it) then ((download size of it) as string) else (“0”)),display name of site of it, applicable computer count of it as string) of elements of unions of ((sets of source fixlets of components of component groups of bes fixlets whose (baseline flag of it = true and name of it = “My February baseline”)))

The above returns applicable fixlets for ALL computers, whereas I only want it to return those relating to members of a specified group.

I know I need to extend the “of (applicable computers whose (exists name of it)” clause to include an AND……… but haven’t been able to get this working.

Please could anyone help?

Looks like you have a handle on retrieving all of the properties/headers and just need a bit of help with the filters. This should give you a start

(item 0 of it, item 0 of item 1 of it, item 1 of item 1 of it) of (names of it, (names of it, names of applicable computers whose (it is contained by set of members of bes computer groups whose (name of it = "Windows Servers")) of it) of source fixlets of components of component groups of it)of bes fixlets whose (baseline flag of it and name of it contains "Baseline")

In this result, item 0 is the baseline, item 1 is the component, and item 2 is the applicable computer from your computer group.

Thanks very much! This really helped me out. I was able to take this and update my relevance as follows (I’ve changed some other bits too):

unique values of (item 0 of it as string & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of (((ids of it, names of it) of applicable computers whose (exists name of it and it is contained by set of members of bes computer groups whose (name of it = “TestGroup”)) of it, name of it, source severity of it, category of it, (day_of_month of it as string & “/” & ((month of it as integer) as string) & “/” & year of it as string) of source release date of it, (if (exists last became relevant of result of it) then (1) else (0)) as string, (if (exists last became nonrelevant of result of it and relevant flag of result of it = false) then (1) else (0) ) as string, (if (relevant flag of result of it = true) then (1) else (0)) as string) of fixlets of it of (results of elements of unions of ((sets of source fixlets of components of component groups of bes fixlets whose (baseline flag of it = true and name of it = “My February baseline”)))))

The above gives me an output as follows:

2299628, ComputerA||MS18-DEC: Security Only Quality Update - Security Only - Windows Server 2012 R2 - .NET Framework 4.5.2 - KB4470491 (x64)||Important||Security Update||11/12/2018||1||0||1

Notice that I am retrieving the computer ID and computer name combined as item 0. This is causing me a problem as I need to separate the ID and name with the || delimeter. I have struggled to get the correct relevance to do this.

I have tried to use tuples and substrings separated by “,” - but this doesn’t work. I’m not sure what type that item 0 is.

Does anyone know how I can split the item 0 into its two parts (ID and name) and insert a || delimeter between them?

This would ultimately give me something like:
2299628||ComputerA||MS18-DEC: Security Only Quality Update - Security Only - Windows Server 2012 R2 - .NET Framework 4.5.2 - KB4470491 (x64)||Important||Security Update||11/12/2018||1||0||1

I have a further requirement (sorry) - I also need to extend the above to also report on a given property of the computer. For example, the final relevance clause would output the following for each computer:

2299628||ComputerA||Property A value||MS18-DEC: Security Only Quality Update - Security Only - Windows Server 2012 R2 - .NET Framework 4.5.2 - KB4470491 (x64)||Important||Security Update||11/12/2018||1||0||1

Where “Property A value” is the value of the computer property “Property A” for that computer.

I think I need to add something like this to the relevance clause:

…of (computer of it, bes property “Property A”)) of applicable computers…

I have developed the following but this isn’t working:

unique values of (item 0 of it as string & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of ((name of it, bes property “Property A”) of applicable computers whose (exists name of it and it is contained by set of members of bes computer groups whose (name of it = “TestGroup”)) of it, name of it, source severity of it, category of it, (day_of_month of it as string & “/” & ((month of it as integer) as string) & “/” & year of it as string) of source release date of it, (if (exists last became relevant of result of it) then (1) else (0)) as string, (if (exists last became nonrelevant of result of it and relevant flag of result of it = false) then (1) else (0) ) as string, (if (relevant flag of result of it = true) then (1) else (0)) as string) of fixlets of it of (results of elements of unions of ((sets of source fixlets of components of component groups of bes fixlets whose (baseline flag of it = true and name of it = “My February baseline”)))))

When I run this through the Session Relevance Checker i get the error:
Error: The operator “string” is not defined

Can anyone help?

I have re-written my Relevance, since it was getting data based on applicable computers of fixlet results. This was omitting some data, since I needed it to get ALL fixlet results whether or not the computer is relevant or not.

I have got this working now, with the exception of filtering by computer group membership - so I am back at square one.

unique values of (“ID” & “||” & item 0 of it as string & “||” & “NONE” & “||” & item 1 of it & “||” & item 2 of it & “||” & item 3 of it & “||” & item 4 of it & “||” & item 5 of it & “||” & item 6 of it & “||” & item 7 of it) of ((name of computers of it, name of fixlet of it, source severity of fixlet of it, category of fixlet of it, (day_of_month of it as string & “/” & ((month of it as integer) as string) & “/” & year of it as string) of source release date of fixlet of it, (if (exists last became relevant of result of fixlet of it) then (1) else (0)) as string, (if (exists last became nonrelevant of result of fixlet of it and relevant flag of result of fixlet of it = false) then (1) else (0) ) as string, (if (relevant flag of result of fixlet of it = true) then (1) else (0)) as string) of results of elements of unions of ((sets of source fixlets of components of component groups of bes fixlets whose (baseline flag of it = true and name of it = “My February baseline”))))

I need to be able to insert the following (or similar) in the above to filter by group:

computers whose (exists name of it and it is contained by set of members of bes computer groups whose (name of it = “TestGroup”)) of it

But I am getting Error: The operator “contains” is not defined, so this is not being added in the right place.

Could anyone give any pointer?