Hello, (sorry about the long posting, I tried to put all the info in)
I have set up a custom field and scrip that creates a child ticket when the custom field "RolloutOnFTN" is changed to "createchildticket". The child tickets inherits all custom fields from the parent ticket, but the "RolloutOnFTN" field is set to "pendingchildticket". All this works fine. But I also want to update the custom field of the parent ticket to "pendingchildticket" when the child ticket is created. How can I do that? I tried this (borrowing heavily form the workflow example of the wiki): =================== begin of scrip ============================= Custom Condition: --------------------------- # do nothing unless: # customfield id3 is changed or created # customfield RolloutOnFTN (=id3) is PendingChildTicket my $CFName = 'RolloutOnFTN'; my $CFid = 3; my $CFvalue = 'PendingChildTicket'; unless ( ( $self->TransactionObj->Type eq "CustomField" && $self->TransactionObj->Field == $CFid ) || $self->TransactionObj->Type eq "Create" ) { return 0; } return 0 unless $self->TicketObj->FirstCustomFieldValue( $CFName ) =~ /$CFvalue/i; 1; Custom Action Cleanup code: ------------------------------------------- ### for debugging #### my $ticket = $self->TicketObj; $ticket->AddCustomFieldValue( Field => 'ReleasePhase' , Value => "01_Proposal" ); $self->TicketObj->SetPriority( 100 ); $self->TicketObj->SetStatus( "stalled" ); #### the real thing ###### my $cf_value = 'PendingChildTicket'; my $cf_name; ### Figure out which kind of child this is my $subject = $self->TicketObj->Subject; $cf_name = 'RolloutOnFTN' if $subject =~ /^ImplementOnFTN/; $cf_name = 'RolloutOnFTS' if $subject =~ /^ImplementOnFTS/; # Repeat for your custom field names. # There may be a better way to do this. return undef unless $cf_name; my $actor = $self->TransactionObj->CreatorObj; my $actorname = $actor->RealName . ' (' . $actor->EmailAddress . ')'; my $CF_Obj = RT::CustomField->new($self->CurrentUser); #### current ticket is member of(child of some parents) my $MemberOf = $self->TicketObj->MemberOf; #### the following only runs if ticket is child of one or more parent: while (my $l = $MemberOf->Next ) { # we can't check non local objects next unless( $l->TargetURI->IsLocal ); # Update the custom field in the parent ticket to show completed. $CF_Obj->LoadByName( Name => $cf_name, Queue => $l->TargetObj->QueueObj->Id); $CF_Obj->AddValueForObject( Object => $l->TargetObj, Content => $cf_value ); my $id = $self->TicketObj->id; my $status = $self->TicketObj->Status; $l->TargetObj->Correspond(Content => <<END); Child ticket created: Ticket: $id Status: $status Subject: $subject By: $actorname END } return 1; ================== end of scrip =============================================== When I create the child ticket from the parent then it runs the debug code in the scrip (see below), but it doesn't update the parent ticket. (Btw. The ticket status change is rolled back for some reason, see last line) # Thu Oct 25 14:56:03 2007 RT_System - Ticket created [Reply] [Comment] Download (untitled) [text/plain 73b] Implementation on FTN required Please see the parent ticket for details. # Thu Oct 25 14:56:03 2007 RT_System - Outgoing email recorded [Show] # Thu Oct 25 14:56:03 2007 RT_System - Status changed from 'open' to 'stalled' # Thu Oct 25 14:56:04 2007 RT_System - ReleasePhase 05_Implementing changed to 01_Proposal # Thu Oct 25 14:56:04 2007 RT_System - Priority changed from '60' to '100' # Thu Oct 25 14:56:04 2007 RT_System - Status changed from 'stalled' to 'open' When I trigger this scrip, after the child ticket is created by changing the custom field value to "pendingchildticket" manually, the scrip runs all the way through and the parent ticket is updated and receives the correspondence. Why does it only work in the second case? Any ideas? Doro
_______________________________________________ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users SAVE THOUSANDS OF DOLLARS ON RT SUPPORT: If you sign up for a new RT support contract before December 31, we'll take up to 20 percent off the price. This sale won't last long, so get in touch today. Email us at [EMAIL PROTECTED] or call us at +1 617 812 0745. Community help: http://wiki.bestpractical.com Commercial support: [EMAIL PROTECTED] Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com