<DIV><PRE class=formatter_pre>Please, can anyone help me out with this....I'm running rt 3.2.2 on redhat linux 8.0, perl 5.8.6, mode_perl 1 on apache 1.1.9 and mysql 4.1.9 and I'm trying to use the UntouchedInHours module from rt-crontool. However, I get the following error anytime i try to run this command from rt-crontool: </PRE><PRE class=formatter_pre>[Wed Feb  2 08:43:28 2005] [crit]: Failed to load module RT::Condition::UntouchedInHours. () at ./rt-crontool line 162.<BR> (/opt/rt3/lib/RT.pm:276)<BR>[Wed Feb  2 08:48:34 2005] [crit]: Failed to load module RT::Condition::UntouchedInHours. () at ./rt-crontool line 162.<BR> (/opt/rt3/lib/RT.pm:276)<BR>[Wed Feb  2 08:48:50 2005] [crit]: Failed to load module RT::Condition::UntouchedInHours. () at ./rt-crontool line 162.<BR> (/opt/rt3/lib/RT.pm:276)<BR>[Wed Feb  2 08:52:46 2005] [crit]: Failed to load module RT::Condition::UntouchedInHours. () at ./rt-crontool line
 162.<BR> (/opt/rt3/lib/RT.pm:276)</PRE><PRE class=formatter_pre>The command I'm running from rt-crontool is:</PRE><PRE class=formatter_pre>./rt-crontool --search RT::Search::FromSQL --search-arg "Queue='VSATFaults' AND Status!='resolved" --condition RT::Condition::UntouchedInHours --condition-arg 2 --action RT:Action::RecordCorrespondence -template-id 13"</PRE><PRE class=formatter_pre>The UntouchedInHours module I got from RT Wiki is:</PRE><PRE class=formatter_pre>package RT::Condition::UntouchedInHours;
require RT::Condition::Generic;  

use strict;
use vars qw/@ISA/;

# We inherit from RT::Condition::Generic so we don't have to write (and maintain) 
# all the other stuff that goes into a condition
@ISA = qw(RT::Condition::Generic);  

=head2 IsApplicable

If the ticket's LastUpdated is more than n hours ago

=cut

# We just need to include this one function. I could have put everything in here but in
# order to demonstrate the use of external functions, I've created the local_ageinhours
# function. The function subtracts the LastUpdated time (as an Epoch timestamp) from the
# current time stamp, then turns these seconds into hours.
# The main function then just checks if this number is greater or equal to the argument
# the crontool passed in.

# Note that the main function MUST be called 'IsApplicable'. For complex conditions it 
# may be best to create other functions as I've done here - so long as they're called 
# from IsApplicable.
# I'd suggest naming your own functions with a 'local_' prefix so as to be certain not
# to overwrite any current or future core function.

sub IsApplicable {
   my $self = shift;
   if ( local_ageInHours($self->TicketObj) >= $self->Argument ) {
       # Returning true (1) indicates that this condition is true
       return 1;
   } else {
       # Returning undef indicates that this condition is false
       return undef;
   }
}

sub local_ageInHours {
   my $ticketObj = shift;
   return (time - $self->TicketObj->LastUpdated->Unix) / (60*60);
}

# The following could be omitted. They're there to allow overrides from Vendor and Local
# but as this isn't a core module, they're just there for completeness :)

eval "require RT::Condition::UntouchedInHours_Vendor";
die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/UntouchedInHours_Vendor.pm});
eval "require RT::Condition::UntouchedInHours_Local";
die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/UntouchedInHours_Local.pm});

# If you weren't already aware, all perl modules need to evaluate to true. So we
# force it to evaluate to true by finishing with a '1'.
1;
</PRE><!-- BEGIN display_changed_by --><!-- END display_changed_by --><!-- END display_content --></DIV><p>__________________________________________________<br>Do You Yahoo!?<br>Tired of spam?  Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com