Hi Tony,
confusing OK, let us give out more:
my $duedate = RT::Date->new($RT::SystemUser);
my $bus_hours_duetime = 24;
$duedate->Set(Format=>‘unix’, Value=>$bus_hours_duetime);
$self->TicketObj->SetDue($duedate->ISO);
my $DepOnBy = $self->TicketObj->DependedOnBy;
$RT::Logger->debug(“BaseObj called 1”);
while (my $dep = $DepOnBy->Next) {
$RT::Logger->debug("DepOnTickets: $dep->BaseObj->Id");
my $systicket = RT::Ticket->new($RT::SystemUser);
$systicket->Load($dep->BaseObj->Id);
and from here stupid copy and paste from my scrip i’m searching here backwards real child tickets, you searching for Depends on
my $Members = $systicket->Members;
my $Members = $systicket->DependsOn;
while(my $l = $Members->Next ) {
$l->TicketObj->SetDue($duedate->ISO);
}
$RT::Logger->debug(“BaseObj called 2”);
}
return 1;Von: Tony John - ERS, HCL Tech [mailto:tonyjohn@hcl.in]
Gesendet: Mittwoch, 25. November 2009 13:23
An: Brumm, Torsten / Kuehne + Nagel / Ham MI-ID; Torsten Brumm
Cc: rt-users@lists.bestpractical.com
Betreff: RE: [rt-users] Set Due Date - Child Tickets
Hi Torsten,
my $duedate = RT::Date->new($RT::SystemUser);
my $bus_hours_duetime = 24;
$duedate->Set(Format=>‘unix’, Value=>$bus_hours_duetime);
$self->TicketObj->SetDue($duedate->ISO);
my $DepOnBy = $self->TicketObj->DependedOnBy;
$RT::Logger->debug(“BaseObj called 1”);
while (my $dep = $DepOnBy->Next) {
my $systicket = RT::Ticket->new($RT::SystemUser);
$systicket->Load($dep->BaseObj->Id);
my $Members = $systicket->Members;
while(my $l = $Members->Next ) {
$l->TicketObj->SetDue($duedate->ISO);
}
$RT::Logger->debug(“BaseObj called 2”);
}
return 1;
This scrip also couldn’t set Due Date for the Child Ticket.Only the first RT::Logger was seen in the RT logfile.I think its not entering the loop “while (my $dep = $DepOnBy->Next)”
Any help?
Regards,
Tony
From: Brumm, Torsten / Kuehne + Nagel / Ham MI-ID [mailto:torsten.brumm@Kuehne-Nagel.com]
Sent: Wednesday, November 25, 2009 5:36 PM
To: TONY JOHN - ERS, HCL Tech; Torsten Brumm
Cc: rt-users@lists.bestpractical.com
Subject: AW: [rt-users] Set Due Date - Child Tickets
Hi Tony,
i think this is the problem:
$l->BaseObj->SetDue($duedate->ISO);
should by $l->TicketObj->SetDue($duedate->ISO);
Like this:
your calculations
my $duedate = RT::Date->new($RT::SystemUser);
my $bus_hours_duetime = 24;
$duedate->Set(Format=>‘unix’, Value=>$bus_hours_duetime);
$self->TicketObj->SetDue($duedate->ISO);
find depon ticket
my $DepOnBy = $self->TicketObj->DependedOnBy;
$RT::Logger->debug(“BaseObj called”);
loop through all deponbys
while (my $dep = $DepOnBy->Next) {
my $systicket = RT::Ticket->new($RT::SystemUser);
# Get ID of all deponby tickets and load from id the ticketobj
$systicket->Load($dep->BaseObj->Id);
my $Members = $systicket->Members;
from here we have all our depended on by tickets, we will set the due here
while(my $l = $Members->Next ) {
$l->TicketObj->SetDue($duedate->ISO);
}
$RT::Logger->debug(“BaseObj called”);
}
return 1;
Otherwise, let the logger give out the content of the variables.
Torsten
Kühne + Nagel (AG & Co.) KG, Geschäftsleitung: Hans-Georg Brinkmann (Vors.), Dirk Blesius (Stellv.), Reiner Heiken (Stellv.), Bruno Mang, Alfred Manke, Christian Marnetté (Stellv.), Mark Reinhardt (Stellv.), Jens Wollesen, Rainer Wunn, Sitz: Bremen, Registergericht: Bremen, HRA 21928, USt-IdNr.: DE 812773878, Persönlich haftende Gesellschaft: Kühne & Nagel A.G., Sitz: Contern/Luxemburg, Geschäftsführender Verwaltungsrat: Klaus-Michael Kühne
Von: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von TONY JOHN - ERS, HCL Tech
Gesendet: Mittwoch, 25. November 2009 12:53
An: Torsten Brumm
Cc: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Set Due Date - Child Tickets
Hi Torsten,
I tried this Scrip but it isn’t working
my $duedate = RT::Date->new($RT::SystemUser);
my $bus_hours_duetime = 24;
$duedate->Set(Format=>‘unix’, Value=>$bus_hours_duetime);
$self->TicketObj->SetDue($duedate->ISO);
my $DepOnBy = $self->TicketObj->DependedOnBy;
$RT::Logger->debug(“BaseObj called”);
while (my $dep = $DepOnBy->Next) {
my $systicket = RT::Ticket->new($RT::SystemUser);
$systicket->Load($dep->BaseObj->Id);
my $Members = $systicket->Members;
while(my $l = $Members->Next ) {
$l->BaseObj->SetDue($duedate->ISO);
}
$RT::Logger->debug(“BaseObj called”);
}
return 1;
Regards,
Tony
From: Torsten Brumm [mailto:torsten.brumm@googlemail.com]
Sent: Wednesday, November 25, 2009 5:02 PM
To: TONY JOHN - ERS, HCL Tech
Cc: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] Set Due Date - Child Tickets
Hi Tony,
i think the problem is my $link = $self->TicketObj->DependedOnBy->Next; which gives you back all possible DependedOnBy Tickets, also if you have more. I tried something similar last week.
Attached a piece of code to find all deponby tickets and update the deponbys with something.
my $DepOnBy = $self->TicketObj->DependedOnBy;
my $dep;
my $l;
while( $dep = $DepOnBy->Next ) {
next unless( $dep->BaseURI->IsLocal );
my $systicket = RT::Ticket->new($RT::SystemUser);
$systicket->Load($dep->BaseObj->Id);
my $Members = $systicket->Members;
while( $l = $Members->Next ) {
next unless( $l->TargetURI->IsLocal );
next unless( $l->BaseObj->Queue =~ /^(?:1043|612|613)$/ );
$self->TicketObj->AddLink(Type=>‘MemberOf’,Base=>$l->BaseObj->Id);
}
}
return 1;
In my case i added to all deponby tickets a new member, you can replace this with your setdue part i think,
Torsten