<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: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=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.date
        {mso-style-name:date;}
span.description
        {mso-style-name:description;}
span.type
        {mso-style-name:type;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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 lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>I have 4 custom fields in this scenario:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>1<sup>st</sup> Approval<o:p></o:p></p><p class=MsoNormal>2<sup>nd</sup> Approval<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Those are both “Select One Value” dropdowns that apply to tickets. Permissions are “view” for Privileged and modify for a group allowed to approve these tickets.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have 2 additional fields:<o:p></o:p></p><p class=MsoNormal>1<sup>st</sup> Approved By<o:p></o:p></p><p class=MsoNormal>2<sup>nd</sup> Approved By<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Both are “Enter one value” that apply to tickets. Privileged has view and there are no other permissions set (I don’t want users able to set this field, essentially “read only” - you’ll see why in a minute).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If an approver makes a selection in one of the select boxes, I have scrip that will enter a value in the corresponding “approved by” field.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here’s the weird thing – it works perfect for the “1<sup>st</sup>” boxes. But when I choose a value for the 2<sup>nd</sup> approval, it sets it, then reverts it back to the previous value (I’ve tried modifying the field as a superuser to confirm its rolling back and not just deleting the value). The scrip code from the “1<sup>st</sup>” check/set was copy/pasted and only the variables changed to reflect the different column ids.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here is the snippet from the ticket history:<o:p></o:p></p><p class=MsoNormal><span class=date>Fri Dec 02 09:35:37 2011</span> <span class=description>Brent Wiese - (CC) 2nd Approval No changed to Yes</span> <o:p></o:p></p><p class=MsoNormal><span class=date>Fri Dec 02 09:35:37 2011</span> <span class=description>The RT System itself - (CC) Seconded By Approved by: Brent Wiese added</span> <o:p></o:p></p><p class=MsoNormal><a name=lasttrans></a><span class=date>Fri Dec 02 09:35:37 2011</span> <span class=description>Brent Wiese - (CC) Seconded By Approved by: Brent Wiese deleted</span> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Scrip:<o:p></o:p></p><p class=MsoNormal>Condition: User Defined<o:p></o:p></p><p class=MsoNormal>Action: User Defined<o:p></o:p></p><p class=MsoNormal>Template: Global template: Blank<o:p></o:p></p><p class=MsoNormal>Stage: TransactionCreate<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Custom condition:<o:p></o:p></p><p class=MsoNormal>unless ($self->TransactionObj->Type eq "CustomField" ) {<o:p></o:p></p><p class=MsoNormal>return 0;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>1;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Prep:<o:p></o:p></p><p class=MsoNormal># Set Field to ID of (CC) 1st Approval:<o:p></o:p></p><p class=MsoNormal>my $CFid = 5;<o:p></o:p></p><p class=MsoNormal># Set to ID of (CC) 1st Approved By:<o:p></o:p></p><p class=MsoNormal>my $CFAppID = 18;<o:p></o:p></p><p class=MsoNormal># Set Field to ID of (CC) 2nd Approval:<o:p></o:p></p><p class=MsoNormal>my $CFid2 = 17;<o:p></o:p></p><p class=MsoNormal># Set to ID of (CC) 2nd Approved By:<o:p></o:p></p><p class=MsoNormal>my $CFAppID2 = 20;<o:p></o:p></p><p class=MsoNormal># Set to 1 if you want an extra line that the scrip made changes logged in the ticket history<o:p></o:p></p><p class=MsoNormal>my $rec = 1;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>my $cf_obj = RT::CustomField->new($RT::SystemUser);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>my $trans = $self->TransactionObj;<o:p></o:p></p><p class=MsoNormal>my $ticket = $self->TicketObj;<o:p></o:p></p><p class=MsoNormal>my $person = $trans->CreatorObj->RealName;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>if ( $self->TransactionObj->Type eq "CustomField" && $self->TransactionObj->Field == $CFid ) {<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                                $cf_obj->LoadByName( Name => $CFAppID );<o:p></o:p></p><p class=MsoNormal>                                <o:p></o:p></p><p class=MsoNormal>                                my $val = $ticket->FirstCustomFieldValue($CFid);<o:p></o:p></p><p class=MsoNormal>                                if ($val eq 'Yes') {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Approved by: $person", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                } elsif ($val eq 'No') {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Disapproved by: $person", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                } else {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Pending", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>if ( $self->TransactionObj->Type eq "CustomField" && $self->TransactionObj->Field == $CFid2 ) {<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                                $cf_obj->LoadByName( Name => $CFAppID2 ); <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                                my $val2 = $ticket->FirstCustomFieldValue($CFid2);<o:p></o:p></p><p class=MsoNormal>                                if ($val2 eq 'Yes') {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Approved by: $person", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                } elsif ($val2 eq 'No') {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Disapproved by: $person", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                } else {<o:p></o:p></p><p class=MsoNormal>                                                $ticket->AddCustomFieldValue(Field => $cf_obj, Value => "Pending", RecordTransaction => $rec );<o:p></o:p></p><p class=MsoNormal>                                                }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>return 1;  <span style='font-family:Wingdings'>ß</span> I’ve tried return 0 here too and no difference<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>No cleanup.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It was working this way before I added the $cf_obj variable.  I thought maybe hard-coding it to enter the value as RT_System would help, but it made no difference.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I tried doing all the code in the custom condition (which is why I’m still checking if it’s a customfield transaction in the if statement). Works the same either way I try it.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Any thoughts?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<o:p></o:p></p><p class=MsoNormal>Brent<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>