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

Kevin Falcone falcone at bestpractical.com
Mon Jan 24 21:59:38 EST 2011


On Mon, Jan 24, 2011 at 12:06:02PM -0800, Kenneth Crocker wrote:
>    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.

The relevant documentation is found in perldoc
lib/RT/Ticket_Overlay.pm . You're passing incorrect arguments to
SetStatus

>    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 --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20110124/bea4d188/attachment.sig>


More information about the rt-users mailing list