On Thu, Oct 13, 2011 at 10:35:40PM -0400, Ryan Frantz wrote:

Are you getting this error on startup or during the execution of the
scrip (during ticket creation).

>    Oct 13 22:20:57 rt2 RT: Scrip IsApplicable 14 died. - Can't locate object 
> method "new" via
>    package "RT::Condition::OnAfterHoursCreate" at 
> /usr/local/rt/sbin/../lib/RT/ScripCondition.pm
>    line 173.  Stack:   [/usr/local/rt/sbin/../lib/RT/ScripCondition.pm:173]
>    [/usr/local/rt/sbin/../lib/RT/Scrip.pm:404]   
> [/usr/local/rt/sbin/../lib/RT/Scrips.pm:225]
>    [/usr/local/rt/sbin/../lib/RT/Transaction.pm:179]
>    [/usr/local/rt/sbin/../lib/RT/Record.pm:1447]   
> [/usr/local/rt/sbin/../lib/RT/Ticket.pm:669]
>    [/usr/local/rt/sbin/../lib/RT/Interface/Web.pm:1389]
>    [/usr/local/rt/share/html/Ticket/Display.html:127]
>    [/usr/local/rt/share/html/Ticket/Create.html:444]
>    [/usr/local/rt/sbin/../lib/RT/Interface/Web.pm:538]
>    [/usr/local/rt/sbin/../lib/RT/Interface/Web.pm:285]
>    [/usr/local/rt/share/html/autohandler:53] 
> (/usr/local/rt/sbin/../lib/RT/Scrip.pm:419)
> 
>    The name of the custom condition is OnAfterHoursCreate and it is located 
> under
>    <myRtRoot>/local/lib/RT/Condition/.  What's odd is that when I look at the 
> system condition
>    modules, I don't see a new() method defined so I'm not sure why this error 
> is occuring for
>    me.  For reference, this is the code for the custom condition:

The new() method is defined in RT::Condition

Generally, this error means some typo between:

The filename
The package
>    package RT::Condition::OnAfterHoursCreate;
The exec module
>                 ExecModule           => 'OnAfterHoursCreate',

Since at least 2 of those look fine, I'd double-check the filename and
permissions on the file (and on the directories leading to the file).

Incidentally, if you're going to write a number of these, you may find
it useful to write an initialdata file:

cat > customconditions
@ScripConditions = (
        {Name                 => 'On After Hours Create',
        Description          => 'A ticket is created after hours',
        ExecModule           => 'OnAfterHoursCreate',
        ApplicableTransTypes => 'Create',
        }
);
./sbin/rt-setup-database --action insert --datafile customconditions
Which is a slightly simpler way to register your custom condition.

-kevin

Attachment: pgpepWl5H4pqk.pgp
Description: PGP signature

--------
RT Training Sessions (http://bestpractical.com/services/training.html)
*  San Francisco, CA, USA — October 18 & 19, 2011
*  Washington DC, USA — October 31 & November 1, 2011
*  Barcelona, Spain — November 28 & 29, 2011

Reply via email to