<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Yes that is correct.  The reason is that we monitor the
status of the ticket for responses.  Some of the tickets that we take are time
based, ie LNP orders, so if the requestor doesn’t meet the required time to
response we auto resolve the ticket. The problem is leaving the status change
to the owner, it doesn’t always happens, and some valid tickets are being
closed due to this little problem.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I appreciate your help.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Carlos<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Ken Crocker [mailto:kfcrocker@lbl.gov]
<br>
<b>Sent:</b> Tuesday, July 14, 2009 12:25 PM<br>
<b>To:</b> Carlos A. Alvarez<br>
<b>Cc:</b> rt-users@lists.bestpractical.com<br>
<b>Subject:</b> Re: [rt-users] (no subject)<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Carlos,<br>
<br>
Sounds like you are creating a situation where the ticket status is constantly
switched between "open" and "stalled" every time the
Requestor and ticket owner communicate to each other. Seems a bit busy but hey,
if that's what you want. Try something like this:<br>
<br>
<b>Scrip 1 - Owner reply:</b><br>
<i>Condition: On Correspond<br>
<br>
Custom Prep Code:</i><br>
my $trans = $self->TransactionObj;<br>
my $ticket = $self->TicketObj;<br>
my $corresponder_id = $trans->CreatorObj->PrincipalId;<br>
my $requestor =
$ticket->Requestors->UserMembersObj->First->PrincipalId;<br>
my $owner_id = $ticket->OwnerObj->PrincipalId;<br>
my $cf_obj = RT::CustomField->new($RT::SystemUser);<br>
my $cf_name = " ";<br>
my $cf_value = " ";<br>
<br>
# set new value for CF Support Status depending on who initiates correspondence<br>
<br>
if  ( $corresponder_id = $requestor )<br>
    {<br>
     $cf_name = "Support
Status";    <br>
     $cf_obj->LoadByName( Name => $cf_name );<br>
     $RT::Logger->debug( "Loaded \$cf_obj->Name
= ". $cf_obj->Name() ."\n" );<br>
     $ticket->AddCustomFieldValue( Field=>$cf_obj,
Value=>$cf_value, RecordTransaction=>0 );<br>
     $cf_name = "AutoClosure";    <br>
     $cf_obj->LoadByName( Name => $cf_name );<br>
     $RT::Logger->debug( "Loaded \$cf_obj->Name
= ". $cf_obj->Name() ."\n" );<br>
     $ticket->AddCustomFieldValue( Field=>$cf_obj,
Value=>$cf_value, RecordTransaction=>0 );<br>
     $ticket->SetStatus("open");<br>
    }<br>
elseif ( $corresponder_id = $owner )<br>
    {<br>
     $cf_name = "Support Status"; <br>
     $cf_value = "Awaiting Customer";  
<br>
     $cf_obj->LoadByName( Name => $cf_name );<br>
     $RT::Logger->debug( "Loaded \$cf_obj->Name
= ". $cf_obj->Name() ."\n" );<br>
     $ticket->AddCustomFieldValue( Field=>$cf_obj,
Value=>$cf_value, RecordTransaction=>0 );<br>
     $ticket->SetStatus("stalled");<br>
    }<br>
<br>
return 1;<br>
<i>Custom Cleanup Code:</i><br>
<br>
return 1;<br>
<br>
I'm not sure the "ID" part of the code is correct, but the key is to
get the Owner & Requestor ids and then compare them to the id of the person
doing the correspondence and then based on those results, set your CF's and
ticket status. If there is no match, then someone else is doing the
correspondence and you want to stop. One scrip to handle all that for
correspondence. Hope this helps.<br>
<br>
Kenn<br>
LBNL<br>
<br>
On 7/13/2009 6:59 PM, Carlos A. Alvarez wrote: <o:p></o:p></p>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I
will like to create a scrip where the status of a ticket is automatically
changed from open to stalled when a Owner replies to a requestor. I am using
rt-crontool to monitor the status of the tickets and auto resolve the ticket
after 72 hours of inactivity.  I created a custom field to monitor the
status of the crontool, but my problem is that when the customer replies, I
can’t rely on my techs to change the status of the ticket manually.<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I
tried creating User Defined Scrip which works fine, exept it executes each
time, indiscriminately. Let me try to explain, I have one script that changes
the status from open to stalled, when a technician replies, and another that
changed the status back to open when the customer/requestor replies.  I
can see that both scrips are executing at the same time regardless of who
initiated the correspondence. <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I
know that I am missing something basic, but I don’t know what.  Can anyone
help.<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Scrip
1 customer reply<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>$self->TicketObj->AddCustomFieldValue(Field
=> 'Support Status', Value => ' ');<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>$self->TicketObj->AddCustomFieldValue(Field
=> 'AutoClosure', Value => ' ');<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>$self->TicketObj->SetStatus("open");<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>return
1;<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Scrip
2 Owner reply<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>$self->TicketObj->AddCustomFieldValue(Field
=> 'Support Status', Value => 'Awaiting Customer');<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>$self->TicketObj->SetStatus("stalled");<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>return
1;<o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks…<o:p></o:p></p>

</div>

<pre><o:p> </o:p></pre><pre style='text-align:center'>

<hr size=4 width="90%" align=center>

</pre><pre><o:p> </o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre><a
href="http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users">http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users</a><o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Community help: <a
href="http://wiki.bestpractical.com">http://wiki.bestpractical.com</a><o:p></o:p></pre><pre>Commercial support: <a
href="mailto:sales@bestpractical.com">sales@bestpractical.com</a><o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>Discover RT's hidden secrets with RT Essentials from O'Reilly Media. <o:p></o:p></pre><pre>Buy a copy at <a
href="http://rtbook.bestpractical.com">http://rtbook.bestpractical.com</a><o:p></o:p></pre></div>

</body>

</html>