Where Sub-action status = "Failed"

(imported topic written by jdonlin)

All,

This is my first post. I’m learning alot and want to thank those who post.

On Mondays, I find myself focusing on each Multiple Action Group I created on the previous Friday; within those actions the FAILED sub-actions to see what fixlet has failed on what machine. For a handful of FAILED machines, that takes a little bit of time. For Actions with alot of FAILED, it is impracticable.

My goal is to create a report that I can send to our support teams detailing the machine and the failed sub-actions. I’ve looked at a few posts and some of coding seems a bit over my head.

I’ve modified a custom report from the forum and it gets me the machine info but not the failed fixlet name (see below). No matter what combination of words, I am not getting the syntax correct. (ex. The operator “bes fixlet” is not defined.) I suspect I will need some sort of loop function for reporting multiple failed fixlets.

How can I add the name(s) of the fixlets to the report that caused the FAILED status for each machine? I’m really looking forward to learning from this.

Thank you.

Jim Donlin

===============

<?Relevance (trs of ( td of (id of action of it as string) & td of name of computer of it & td of (status of it as string) & td of bes fixlet of it ) ) of results whose (status of it = bes action status failed) of bes actions whose (id of it = 164484) ?>
Action ID Computer name Action Status Failed Fixlet(s)

(imported comment written by SystemAdmin)

Hey jdonlin,

This should do what you want it to.

trs of ( td of ( name of computer of item 1 of it ) & td of ( detailed statuses of item 1 of it as string ) & td of ( names of item 0 of it as string ) &td of ( id of item 0 of it as string ) ) of ( it, results whose ( status of it = bes action status failed OR status of it = bes action status error OR status of it = bes action status download failed ) of it ) of bes actions whose ( group member flag of it )

Your code was pretty close. The reason “bes fixlet of it” failed is because the multiple action group does not have a source fixlet field. Instead, the name of the action should give you want you want.

There might be a few things that are confusing in this expression. If there is something you want to know more about feel free to ask me.

(imported comment written by jdonlin)

Zak,

First, thank you for your reply.

It is too good. :slight_smile:

The report generates greater than 25000 lines for actions that are not mine and not in my “template” of responsibility. The report only had some of my actions, not all.

I would like to limit my report to a specific action ID.

I’ve tried two things;

  1. adding (issuer of it as string = “jdonlin”) after “of BES actions whose” but I get a syntax error.

  2. When I added "whose (id of it = 164484) & " after “of BES actions whose”, I do get a result but no fixlet name (item?).

It’s been a while since my PASCAL, COBOL and BASIC programming days.

I’m going to try some things and will let you know.

My thanks again,

Jim

(imported comment written by SystemAdmin)

Heh, sorry Jim.

Your syntax is a little off but your relevance theory is dead on.

I believe both this things will work with just small tweaks.

  1. “issuer of bes action” returns an issuer object, which you cant cast as a string. What you want is the name of the issuer, try (name of issuer of it = “jdonlin”)

  2. When i tried adding the “id of it = 164464” it works. I think you may have put it in the wrong spot. Here is how it should look:

of bes actions whose ( group member flag of it AND id of it = 164464)

Hope this helps.

-Zak

(imported comment written by jdonlin)

When I put it all together, I get no data. Any ideas?

<?Relevance trs of ( td of ( name of computer of item 1 of it ) & td of ( detailed statuses of item 1 of it as string ) & td of ( names of item 0 of it as string ) &td of ( id of item 0 of it as string ) ) of ( it, results whose ( status of it = bes action status failed ) of it ) of bes actions whose ( group member flag of it AND id of it = 164464 ) ?>
Computer Status Fixlet Action ID

Thanks.

Jim

(imported comment written by SystemAdmin)

action 164464 may not have a “group memeber flag”. You can remove that art and just leave the “id of it = 164464” if that is the only action you are concerned about. Otherwise take out the id part and put in (name of issuer of it = “jdonlin”).

(imported comment written by jdonlin)

GIGO…It helps to put the correct Action ID. I did remove the “group member flag”.

I do get results data but I’m still missing the fixlet name (it gives the Action name).

Computer Status Fixlet Action ID

The action failed. 164484

I checked it against another “valid” Action ID and the failed #'s were correct. Just missing the individual fixlet names that failed.

(I changed the fields into brackets for corp security reasons but the data is correct)

Many Thanks!

Jim

(imported comment written by jdonlin)

Or Would it be easier to focus on FAILED fixlets within an Action, with data as computername?

The reason I keep harping on FAILED is that we are seeing significantly higher failure rates on certain patches. We are trying to figure out which patches fail on which machines to provide this information back to our support & engineering teams.

Thanks.

Jim

(imported comment written by SystemAdmin)

I’m a little confused as to what you are seeing. Could you post an example of the output you are getting?

On my end, if i have an multiple group action, with 2 fixlets “Zaks Multiaction Test failed” and “Zaks multiaction Test fixed”, our relevance expression will output:

The action failed. “Zaks Multiaction Test failed”

Is this the format that you wanted?

(imported comment written by jdonlin)

Email sent.

Thanks.

Jim

(imported comment written by cstoneba)

What would I use to add the time the action failed on the client in this report? “& td of (time issued of it of item 0 of it as string” seems to be working, but I think that is when the action was pushed, not when it actually began on the client.