[rt-users] Help with perl code to resolve all children tickets

Kenneth Crocker kfcrocker at lbl.gov
Mon Jan 24 15:06:02 EST 2011


To list,

I was fooling around with the idea of creating a scrip that would allow the
resolution of a parent ticket to automatically resolve all children tickets.
I thought this would be helpful if a developer had a bunch of
sub-tasks/tickets and they didn't want to go in and "resolve" each one
individually, they could just "resolve" the parent and that would cause a
cascade effect to go ahead and resolve all the children. This is the code I
developed:

# Resolve all Ticket children when the Ticket is resolved

if  (defined($id))
    {
     $tickets->FromSQL('Type = "ticket" AND MemberOf="'.$id.'"');
#  Loop thru all Children
     while (my $child = $tickets->Next) {
        next unless( $child->Status =~ /^(?:new|open|stalled)$/ );
        $RT::Logger->info("Closing associated child");
        $child->SetStatus("resolved");

This worked fine except in the situation where a "Child" ticket was also a
"Depends/on" ticket. The cascade stops. Well, that made sense, but I want to
get around that.

So I tried to force it with:

# Resolve all Ticket children when the Ticket is resolved

........
........
        $child->SetStatus("resolved", 'Force');

This didn't work. The top parent *was resolved*, but no cascade effect to
any of the "child" tickets at all, even when there was no "DependsOn"
relationship.

I looked at the log and it shows the first ticket resolved, but no errors
after that and yet, the children weren't resolved.

Without the "Force", it works just fine, up to the ticket with the
"DependsOn"child.

So .... I went to several Perl handbooks (Perl Cookbook by O'Reilly, Perl
for Dummies, etc.) and found nothing on the "Set" command, let alone the
"Force" option.
I went to the RT Essentials book and found nothing.

I am *NOT* a perl programmer, but understand enough basic perl to be able to
clone a scrip or two and modify it with what little perl knowledge(?) I
have.

Obviously, I don't know enough about perl to figure this one out.

Can anyone help me out with some perl clues/instruction here?

Thanks in advance.

Kenn
LBNL
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20110124/14890789/attachment.htm>


More information about the rt-users mailing list