This is a code example where I'm checking to see if a CustomField
called "Application" has a value in it. If it doesn't then the
cleanup code changes the status back to OPEN and add a comment to the
ticket stating it was missing a value.
The Custom Action code has to handle that an update may involve
multiple transactions and you have to look at each transaction to if
one of them is going to update that field.
Hope that helps,
CR
-------------------------------
CONDITION: On Resolve
-------------------------------
ACTION: User Defined
-------------------------------
STAGE: TransactionBatch
-------------------------------
#CUSTOM ACTION PREPARATION
### See if there is a Transaction modifying Application field
my @batch= @{ $self->TicketObj->TransactionBatch };
foreach my $txn ( @batch ) {
my $txnType = $txn->Type;
my $txnDesc = $txn->Description;
if ($txnType eq 'CustomField') {
if ($txnDesc =~ /^Application/) {
return 0; # There is a transaction updating Application so
don't run
}
}
}
### Get the Application value
my $CFV = $self->TicketObj->FirstCustomFieldValue('Application');
### Choose whether to run script
if ($CFV) {
return 0; # There is a value so don't execute scrip
}
if ($self->TicketObj->QueueObj->Name eq 'Server') {
return 0; # Skipping the Server queue
}
else {
return 1; # There isn't a value so execute scrip
}
return 0;
-------------------------------
#CUSTOM ACTION CLEANUP
### Set ticket status to open
my ($status, $msg) = $self->TicketObj->SetStatus( 'open' );
unless( $status ) {
$RT::Logger->error( "ERROR - NoApplication SCRIP: $msg" );
return undef;
}
### Add a comment to the ticket
$self->TicketObj->Comment( Content => 'Missing Custom Field Value -
Application! - Status has been changed to OPEN');
return 1;
-------------------------------
On Feb 6, 2009, at 3:30 PM, Laura Grella wrote:
Thanks Kenn,
It has been at least 6 months since I have done any scrip coding and
was
wondering if you had any sample code that would check the field and
return 0
when empty? I'd really appreciate it.
Thanks,
Laura
Kenneth Crocker wrote:
Laura,
I'm only on 3.6.4 so my comment may be out of date. I don't think
that's possible in configuration. If a CF is set up to be mandatory,
then whenever it is applied to a queue, those tickets will require an
entry. What you can do is remove the "Mandatory" setting and then
write
a scrip for the queues you want it to be mandatory in and do a
return 0
when checking it against the desired transactions and it is empty.
Hope
this helps.
Kenn
LBNL
On 2/6/2009 12:33 PM, Laura Grella wrote:
Is there a way to make a custom field mandatory in 3 queues, but not
mandatory in a 4th queue?
Thanks,
Laura
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
Community help: http://wiki.bestpractical.com
Commercial support: [email protected]
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com
--
View this message in context:
http://www.nabble.com/Custom-field-not-mandatory-in-all-queues-tp21880139p21880998.html
Sent from the Request Tracker - User mailing list archive at
Nabble.com.
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
Community help: http://wiki.bestpractical.com
Commercial support: [email protected]
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
Community help: http://wiki.bestpractical.com
Commercial support: [email protected]
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com