On Wed, 8 Sep 2010 09:04:35 -0500 "Peter Barton" <pbar...@iesi.com> wrote:
> I have seen the RT-Extension-MandatorySubject plugin and this is > great for opening tickets via the web interface. However, my company > opens at least 90% of its tickets via email. Is there anything out > that can enforce mandatory subjects on tickets opened via email? We were facing the same problem (the difference is that in our case 100% tickets are filed using web interface) and it was solved using two different soultions (deployed one after another, we're currently using the first one). The first is to make a scrip which sets the subject to the first non-empty line of the report text. Meta info for the scrip: Description: "00 On Create Set Subject From Request Text" Condition: User Defined Action: User Defined Template: Global Template: Blank Stage: TransactionCreate Scrip condition code: if ($self->TransactionObj->Type eq 'Create' && $self->TicketObj->Subject() eq '') { return 1; } else { return undef; } Scrip code: my @lines = split(/\n/, $self->TransactionObj->Content()); for my $line (@lines) { $line =~ s/^\s+//; $line =~ s/\s+$//; if ($line ne '') { my ($ok, $msg) = $self->TicketObj->SetSubject($line); if (!$ok) { $RT::Logger->error("Failed to set ticket subject: $msg"); return 0; } last; } } return 1; The scrip description starts with "00 " to ensure it is executed earlier that other scrips (see [1]) which is needed so that the watchers of the relevant queue get their notification e-mail with the subject appropriately modified. Then we switched to using a callback for the BeforeCreate event of the /SelfService/Create.html form and now the subject is set in that callback using roughly the same code. 1. http://wiki.bestpractical.com/view/ScripExecOrder RT Training in Washington DC, USA on Oct 25 & 26 2010 Last one this year -- Learn how to get the most out of RT!