Baseline Web Report for Each Component and Computer

I am trying to make a Web Report that will show the installed patches per component per computer in a specific baseline. I would ideally like to see the computer name, component name, Status (Installed/Failed/Pending), and Date Component Action Completed. It would be great, if I could filter on both the Baseline or Baseline Action Name and a Computer Group, but I don’t need that, it would just be a preference. I have been able to get the computer name, baseline action name, status and date to show but I can’t get the relevance for each component, it will only show the overall status. Any help would be great.

What do you have so far? Are you using the graphical report/column builder, or a full custom Session Relevance query?

I have 2 different custom Session Relevance Queries I am working on.

This one shows all of the actions including components in baseline.

    <?relevance
concatenation of trs of (th of "Action" & th of "Computer" & th of "Status" & th of "End Time") & concatenation of trs of (td of (item 0 of it as string) & td of (unique values of (item 1 of it as string)) & td of (item 2 of it as string) & td of (item 3 of it as string)) of (name of action of it, name of computer of it, detailed statuses of it, end time of it as string | "n/a") of results of bes actions 
?>

This one shows the completed baseline per computer

    <?relevance
concatenation of trs of (th of "Action" & th of "Computer" & th of "Status" & th of "End Time") & concatenation of trs of (td of (item 0 of it as string) & td of (unique values of (item 1 of it as string)) & td of (item 2 of it as string) & td of (item 3 of it as string)) of (name of action of it, name of computer of it, detailed statuses of it, end time of it as string | "n/a") of results whose (name of action of it contains "BASELINE NAME") of bes actions 
?>

Alright, thanks for posting those queries. I think there’s a form very close to what you have in the first query; the structural difference here is that instead of results of bes actions, I’m using the form results (<bes action>, <bes computer>). With this form it’s easier to filter which actions and which computers to retrieve.
The expanded form, for readability, is

concatenation of trs of (
    th of "Action" 
    & th of "Computer" 
    & th of "Status" 
   & th of "End Time")
   & concatenation of trs of (
       td of (item 0 of it as string) 
       & td of (unique values of (item 1 of it as string)) 
       & td of (item 2 of it as string) 
       & td of (item 3 of it as string)
      ) of (
        name of action of it
        , name of computer of it
        , detailed statuses of it
        , end time of it as string | "n/a"
        ) of results (
                /* Capture the actions, and child member actions, of the baseline we want to filter */
              (   
              it;
              member actions of it
              ) of bes actions whose (name of it contains "Lab")
         
             /* capture the computers who are members of the computer group we want */

            , members of bes computer groups whose (name of it contains "BigFix")
              )

This is great! 2 questions, is it possible to remove the overall Baseline Action and just leave the components? And two, is it possible to only show patches that are relevant to the computers? Right now, I am getting the message below on the non relevant fixlets in the baseline making the report really long.

The Fixlet which this action addresses is not relevant on this machine.

Also, one other question is it possible to do a dropdown or text box for entering the custom baseline name and the group name instead of having to go in and edit the query. I am trying to get this to work for people who aren’t very knowledgeable in BigFix.

I was able to get it where I can select the computer group and action using a dropdown and I was able to remove the overall action so I just have the member actions. I still cannot figure out how to filter on the OS and remove the Not Relevant member actions from the results. Below is what I have for the relevance expression now.

var relevance = '(html "<table id=%22resultsTable%22 class=%22sortable%22><th>Action</th><th>Compuer</th><th>Status</th><th>End Time</th>" & it & html "</table>") of concatenation of trs of (td of (item 0 of it as string) & td of (unique values of (item 1 of it as string)) & td of (item 2 of it as string) & td of (item 3 of it as string)) of (name of action of it, name of computer of it, detailed statuses of it, end time of it as string | "n/a") of results ((member actions of it) of bes actions whose (name of it contains "' + selectedBaselineElement.value + '"), members of bes computer groups whose (name of it contains "' + selectedGroupElement.value + '"))';
	

You’ll need to filter on the bes action results with a whose (it) construct.

You can substitute some selected value for the “Win2” string in my example.

results (...) whose (operating system of computer of it contains "Win2" and  relevant (computer of it, source fixlet of action of it))

In session relevance, operating system is a string containg the OS computer property, so something like:

  • Win2019 10.0.17763.7792 (1809)
  • Win10 10.0.19045.5965 (22H2)
  • Linux CentOS 7.9.2009 (3.10.0-1160.114.2.el7.x86_64)

That works really well thank you! I am trying to get the end date of it to format as MM-DD-YYYY HH:MM:SS instead of the below which shows when I do end date of it as string

Wed, 15 Oct 2025 12:47:48 -0500

Also, is it possible to sort it by computer and not Action?

cast end time as a string and then manipulate the string using substrings:

following text of first “ “ of preceding text of last “ “ of (end time of it as string)

Try swapping the computer column and the action column in your relevance so that the unique values operation will sort by computer first.

See here for a method to make html tables sortable by mouse click:

The End Date looks much better. I have made the change to move the computer name first in the list and it is showing all of the actions for the computer but the computers aren’t showing up alphabetically. I tried adding the sorttable tag to my table and I still get the same result. Any ideas?

Did you also import the javascript?

Yes in the beginning, under the BigFix Header.

This is the template I use to start with:

<link rel="stylesheet" href=../../table.css> 
<script src=../../sorttable.js></script> 
<table class=sortable> 
<th>Site</th><th>Number of Subscribed Computers</th> 
<?relevance  concatenations of trs of (td of name of it & td of (it as string) of number of subscribed computers of it) of bes sites ?> 
</table> 

I store the js and css in the [InstallDrive]:\Program Files (x86)\BigFix Enterprise\BES Server\BESReportsServer\wwwroot folder for ease of reference.