Hi,
I want to reassign the ticket from the 1st queue to another 2nd queue depending upon the custom field value of 1st queue.
For ex : I have a custom field " additional hardware required". If it is set to “yes” in the 1st queue while creating ticket then it should automatically be moved to the 2nd queue.
You need to create a new scrip in the first queue that has some custom code to look at the custom field value and then set the ticket queue based on that. This scrip will need to be fired off whenever you think the custom field may have been changed (so maybe use a condition of “On Transaction” if it could change on any transaction).
The $Ticket->FirstCustomFieldValue('additional hardware required') method call will get you the custom field value and $Ticket->SetQueue() methods are what you’ll need to look up the custom field value and then set the new queue for the ticket. You’ll probably also need to use an RT::Queue object to find the second queue and its ID if you don’t want to hard code it.
So $Ticket->FirstCustomFieldValue , it is the method to get the custom field value. Is it?
Where can I get all the details of these kind of functions $Ticket->SetQueue(), $Ticket->FirstCustomFieldValue and what are the different kind of functions exist in RT.
Yes - there’s a huge amount of online documentation - the Developer section gives you all the various objects and the public methods they provide. Be aware that RT::Ticket objects inherit from RT::Record, so you can use methods from RT::Record with RT::Ticket objects. Its normal object oriented stuff but worth pointing out if you’re wondering where methods like FirstCustomFieldValue() are in RT::Ticket.
Ohh Ok. That is agreta information. Thank you. Will keep posting if I face any more difficlties.
It seems these modules are in the path “RT installation directory/lib/RT”
Can anybody please let me know that how I will get idea when I can use $self ,$TicketObj , $TicketPriority and if any other things are there.
How can I know like which modules or which functions I need to use for what purpose?
If I will give some print statement in custom code, how can I see the output? where it shall see the output.
I am trying to debug if the value is coming or not to the variable. could anyone please let me know how can I make sure the scrip which I have created is running fine or not.
Hi I have created scrip . PFB the details. my customfield name: “Hardware require”. It is not reassigning the ticket to the destination queue while creating ticket with “Hardware require” as yes. COuld any please verify if i need to change anything.
Condition: On Create
Template : blank
Custom action preparation code:
1;
Custom action commit code:
my $cf = “Hardware require”;
if ( $ticket->FirstCustomFieldValue($cf) =~ /Yes/)
{
$self->TicketObj->SetQueue(‘KN.AMER.TestQueue3’);
$RT::Logger->warning("$cf exist for Queue “);
}
else
{
$RT::Logger->warning(”$cf doesn’t exist for Queue ");
}
I would log $ticket->FirstCustomFieldValue($cf) =~ /Yes/ and $ticket->FirstCustomFieldValue($cf) to first make sure the value is set to Yes, you may need to change the stage of to TransactionBatch as well.
Well I’d do what Knation has suggested and log the value of the custom field whilst developing the scrip so that you can check what value it is acually appearing with and that you’re taking the right fork in the logical flow of the scrip.
So I need to add this below line to check in the RT logs the value of the custom field is coming yes or not.
$RT::Logger->warning(”$ticket->FirstCustomFieldValue($cf) ");
and the value will show in the main RT log file while creating a ticket right?Please correct me if I am wrong.