[rt-users] Help with scrip using DiffAsString

Kenneth Crocker kfcrocker at lbl.gov
Thu Jul 14 16:47:59 EDT 2011


To list,

I'm trying to create a scrip that gives me the difference between the
started date and the resolved date when the ticket is resolved:

This is my scrip:

Condition: On Resolve
Action: User-defined
Template: Blank
Stage: TransBatch

Custom Prep Code:
return 1;

Custom Cleanup Code:

# Set initial values

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;
my $timeworked = $ticket->TimeWorked;
my $started = $ticket->StartedObj;
my $now = new RT::Date($RT::SystemUser);
$now->SetToNow();
my $worked = $now->DiffAsString($started);

# Set value for TimeWorked if not already set

unless ($timeworked)
    {
     $ticket->SetTimeWorked($worked);
     return 1;
    }
return 0;

This was what was in the log:

        DBIx::SearchBuilder::Record::__Set('RT::Ticket=HASH(0xcfbcfe0)',
'Field', 'TimeWorked', 'Value', '5 sec', 'IsSQL', 'undef') called at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Record/Cachable.pm line
139
DBIx::SearchBuilder::Record::Cachable::__Set('RT::Ticket=HASH(0xcfbcfe0)',
'Field', 'TimeWorked', 'Value', '5 sec', 'IsSQL', 'undef') called at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Record.pm line 745
DBIx::SearchBuilder::Record::_Set('RT::Ticket=HASH(0xcfbcfe0)', 'Field',
'TimeWorked', 'Value', '5 sec', 'IsSQL', 'undef') called at
/opt/rt3/bin/../local/lib/RT/Record.pm line 482
RT::Record::_Set('RT::Ticket=HASH(0xcfbcfe0)', 'Field', 'TimeWorked',
'Value', '5 sec') called at /opt/rt3/bin/../lib/RT/Ticket_Overlay.pm line
3313        RT::Ticket::_Set('RT::Ticket=HASH(0xcfbcfe0)', 'Field',
'TimeWorked', 'Value', '5 sec') called at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Record.pm line 440
DBIx::SearchBuilder::Record::__ANON__('RT::Ticket=HASH(0xcfbcfe0)', '5 sec')
called at (eval 595) line 16        eval '# Set initial values
 my $trans = $self->TransactionObj;my $ticket = $self->TicketObj;my
$timeworked = $ticket->TimeWorked;
my $started = $ticket->StartedObj;#my $duration = \'DAY\';my $now = new
RT::Date($RT::SystemUser);$now->SetToNow();my $worked =
$now->DiffAsString($started);
 # Set value for TimeWorked if not already set
 unless ($timeworked)    {     $ticket->SetTimeWorked($worked);     return
1;    }
return 0;' called at /opt/rt3/bin/../lib/RT/Action/UserDefined.pm line 78

I don't understand where the "...'Value', '5 sec'" came from.

I also tried this with "Diff" and I get a resulting value.

Anyone have any idea what I'm doing wrong.

I wanted to use "Duration" but couldn't get it to run. I don't understand
what parms it needs.

Any help would be appreciated.

Thanks.

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


More information about the rt-users mailing list