How to get fixlet unique ID from actions

I’ve got myself into a dead end. I’m trying to get a report that contains:

ID of fixlet, ID of action started with that fixlet, name of action, status of action

To explain in details: fixlet with its unique id, can be used to start actions from it. And I would like to see how many actions each fixlet started, where(computers) and its results from a given site (for the sake of argument, can be “Patches for Windows”). I’ve been playing with this relevance:

(id of actions of it, name of actions of it, names of computer of it, detailed statuses of it) of results of bes actions

Which shows to me almost everything I need except the Id of the fixlets, and from results of BES actions, I don’t seem to be able to get this info.

On other hand, this one:

(id of source fixlet of it , id of it , (if exists names of it then names of it else “no name”) , names of computers of results of it , state of it) of bes actions

give me all I want, but its not working on 9.5.8, albeit works on 9.2.3

Does anyone have an idea on how to solve this?

(id of source fixlet of it , id of it , (if exists names of it then names of it else “no name”) , names of computers of results of it , state of it) of bes actions

You appear to me to be on the right track, and this should evaluate the same in 9.5 as in 9.2 as far as I can tell.
However the use of singular id of source fixlet of it could give an error on any actions that don’t have a source fixlet (ie. action issued via the ‘Take Custom Action’ dialog), or the source fixlet was deleted, or the source fixlet is in a site to which your operator does not have access.

You could use the plural ids of source fixlets of it which would omit those cases from the results, or use an if/then construct as in if (exists source fixlet of it) then (id of source fixlet of it as string) else "<no source fixlet>"

1 Like

DRS,
I’m a little surprised that a relevance expression stopped working after a platform version upgrade: if confirmed this would qualify for a support ticket.
Anyway:
your first expression returns attributes of “results of bes actions” and this may be the reason why you don’t have a source fixlet ID associated (this is an attribute of the bes action, not of its result).
The second expression returns attributes of bes actions (thus “id of source fixlet” is an available attribute).
In the first expression you use "names of actions of [] results of bes actions " to return an attribute of the action (its name) from the action’s results, that is a similar case, so if you use “id of source fixlet of action of it” in that expression you should get what you are looking for.

When I use
(id of source fixlet of it , ids of it , (if exists names of it then names of it else "no name") , names of computers of results of it , state of it) of bes actions whose (name of issuer of it = "my_account") in the presentation debugger I get Error: Singular expression refers to nonexistent object.

changing it to plurals gives me results
(id of source fixlet of it , ids of it , (if exists names of it then names of it else "no name") , names of computers of results of it , state of it) of bes actions whose (name of issuer of it = "my_account")

Based on what it’s giving, you probably also want the status of the result for each computer (Fixed, Failed, Pending Restart, etc.)
(ids of source fixlets of it , ids of it , (if exists names of it then names of it else "no name") , (names of computers of it, statuses of it)of results of it , state of it) of bes actions whose (name of issuer of it = "my_account")

You can also use an if/then clause or pipe operator to handle missing source fixlets as in
((id of source fixlet of it as string | "<no source fixlet>") , ids of it , (if exists names of it then names of it else "no name") , (names of computers of it, statuses of it)of results of it , state of it) of bes actions whose (name of issuer of it = "my_operator")

Thank you guys. with plural its working now… I seem to always forget to put things in plural. Noobie mistake that will stay with me forever.

((id of source fixlet of it as string | "<no source fixlet>") , ids of it , (if exists names of it then names of it else "no name") , (names of computers of it, statuses of it)of results of it , state of it) of bes actions whose (id of source fixlet of it = "4703")

This wont work. Getting E: The operator “equal” is not defined.

This which Jason posted works great,
((id of source fixlet of it as string | "<no source fixlet>") , ids of it , (if exists names of it then names of it else "no name") , (names of computers of it, statuses of it)of results of it , state of it) of bes actions

What am I doing wrong here? Im trying to lookup the action results by source fixlet ID.

IDs are generally integers rather than strings. Try:
((id of source fixlet of it as string | "<no source fixlet>") , ids of it , (if exists names of it then names of it else "no name") , (names of computers of it, statuses of it)of results of it , state of it) of bes actions whose (id of source fixlet of it = 4703)

3 Likes