Re: [rt-users] Issue with a Scrip to keep the date of a Owner Changed

2009-06-08 Thread Sébastien Mesnard
Thanks Ken,
It really helps.

___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sa...@bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] Issue with a Scrip to keep the date of a Owner Changed

2009-06-08 Thread Ken Crocker

Sebastien,

   Try using the stage "TransactionBatch" (remember to turn it on in 
RT_SiteConfig.pm). I think that will do it. Also, I don't think you need 
the "return 1;" on the Custom Condition code area as you have already 
set a condition by selecting one that is NOT user-defined. Hope this helps.


Kenn
LBNL

On 6/8/2009 2:06 AM, Sébastien Mesnard wrote:


Hello,

 


I try to keep the date of a Owner changed event.

To do this, I use a scrip to write this date value in a CustomField 
named "LastOwnerChangeDate".


 


Condition: "On Owner Change"

Action: "User Defined"

Template: "Global Template: Blank"

Stage: "TransactionCreate"

 


Custom condition:

return 1;

 


Custom action preparation code:

my $trans = $self->TransactionObj;

my $ticket = $self->TicketObj;

my $cf_obj = RT::CustomField->new($RT::SystemUser);

my $cf_name = "LastOwnerChangeDate";

my $cf_value = $trans->CreatedAsString;

 


$cf_obj->LoadByName(Name=>$cf_name);

$RT::Logger->debug("Loaded\$cf_obj->Name = ". $cf_obj->Name() ."\n");

$ticket->AddCustomFieldValue(Field=>$cf_obj, Value=>$cf_value, 
RecordTransaction=>0);


return 1;

 


Custom action cleanup code:

return 1;

 


It is almost working... :

- When I steal a ticket it works.

- When I give a ticket from the "People" section it works.

- When I give a ticket from the "Basics"  or "Jumbo" section, the date 
is not changed... And here is my issue!


 

In fact, I think that RT begin by evaluating that the owner is changed 
so the CustomField "LastOwnerChangeDate" is replaced to the new value 
by the scrip (OK, that's good!).


But then RT evaluates the Field "LastOwnerChangeDate" in the web 
form... RT see the old value in the field (the new one is already in 
the DB) and replace the new value by the old one...


Maybe I'm wrong but this is what I understand from the logs.

 


Logs for "Steal" or "Give" in the "People" section:

Jun  6 13:37:06 rt-support RT: About to think about scrips for 
transaction #112


Jun  6 13:37:06 rt-support RT: About to prepare scrips for transaction 
#112


Jun  6 13:37:06 rt-support RT: Found 1 scrips for TransactionCreate 
stage with applicable type(s) Steal


Jun  6 13:37:06 rt-support RT: Loaded$cf_obj->Name = LastOwnerChangeDate

Jun  6 13:37:06 rt-support RT: About to commit scrips for transaction #112

Jun  6 13:37:06 rt-support RT: Committing scrip #12 on txn #112 of 
ticket #1


Jun  6 13:37:06 rt-support RT: Found 0 scrips for TransactionBatch 
stage with applicable type(s) Steal


 


Logs for "Give" in the "Basics"  or "Jumbo" section:

Jun  6 13:36:45 rt-support RT: About to think about scrips for 
transaction #110


Jun  6 13:36:45 rt-support RT: About to prepare scrips for transaction 
#110


Jun  6 13:36:45 rt-support RT: Found 1 scrips for TransactionCreate 
stage with applicable type(s) Give


Jun  6 13:36:45 rt-support RT: Loaded$cf_obj->Name = LastOwnerChangeDate

Jun  6 13:36:45 rt-support RT: About to commit scrips for transaction #110

Jun  6 13:36:45 rt-support RT: Committing scrip #12 on txn #110 of 
ticket #1


Jun  6 13:36:45 rt-support RT: About to think about scrips for 
transaction #111


Jun  6 13:36:45 rt-support RT: About to prepare scrips for transaction 
#111


Jun  6 13:36:45 rt-support RT: Found 1 scrips for TransactionCreate 
stage with applicable type(s) CustomField


Jun  6 13:36:45 rt-support RT: About to commit scrips for transaction #111

Jun  6 13:36:45 rt-support RT: Found 0 scrips for TransactionBatch 
stage with applicable type(s) Give,CustomField


 


How can I make it works without this issue ?

Thanks.



___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sa...@bestpractical.com


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: sa...@bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com

[rt-users] Issue with a Scrip to keep the date of a Owner Changed

2009-06-08 Thread Sébastien Mesnard
Hello,

 

I try to keep the date of a Owner changed event.

To do this, I use a scrip to write this date value in a CustomField named
"LastOwnerChangeDate".

 

Condition: "On Owner Change"

Action: "User Defined"

Template: "Global Template: Blank"

Stage: "TransactionCreate"

 

Custom condition:

return 1;

 

Custom action preparation code:

my $trans = $self->TransactionObj; 

my $ticket = $self->TicketObj; 

my $cf_obj = RT::CustomField->new($RT::SystemUser); 

my $cf_name = "LastOwnerChangeDate"; 

my $cf_value = $trans->CreatedAsString; 

 

$cf_obj->LoadByName(Name=>$cf_name);

$RT::Logger->debug("Loaded\$cf_obj->Name = ". $cf_obj->Name() ."\n"); 

$ticket->AddCustomFieldValue(Field=>$cf_obj, Value=>$cf_value,
RecordTransaction=>0); 

return 1;

 

Custom action cleanup code:

return 1;

 

It is almost working... :

- When I steal a ticket it works.

- When I give a ticket from the "People" section it works.

- When I give a ticket from the "Basics"  or "Jumbo" section, the date is
not changed... And here is my issue!

 

In fact, I think that RT begin by evaluating that the owner is changed so
the CustomField "LastOwnerChangeDate" is replaced to the new value by the
scrip (OK, that's good!).

But then RT evaluates the Field "LastOwnerChangeDate" in the web form... RT
see the old value in the field (the new one is already in the DB) and
replace the new value by the old one...

Maybe I’m wrong but this is what I understand from the logs.

 

Logs for "Steal" or "Give" in the "People" section:

Jun  6 13:37:06 rt-support RT: About to think about scrips for transaction
#112

Jun  6 13:37:06 rt-support RT: About to prepare scrips for transaction #112

Jun  6 13:37:06 rt-support RT: Found 1 scrips for TransactionCreate stage
with applicable type(s) Steal

Jun  6 13:37:06 rt-support RT: Loaded$cf_obj->Name = LastOwnerChangeDate

Jun  6 13:37:06 rt-support RT: About to commit scrips for transaction #112

Jun  6 13:37:06 rt-support RT: Committing scrip #12 on txn #112 of ticket #1

Jun  6 13:37:06 rt-support RT: Found 0 scrips for TransactionBatch stage
with applicable type(s) Steal

 

Logs for "Give" in the "Basics"  or "Jumbo" section:

Jun  6 13:36:45 rt-support RT: About to think about scrips for transaction
#110

Jun  6 13:36:45 rt-support RT: About to prepare scrips for transaction #110

Jun  6 13:36:45 rt-support RT: Found 1 scrips for TransactionCreate stage
with applicable type(s) Give

Jun  6 13:36:45 rt-support RT: Loaded$cf_obj->Name = LastOwnerChangeDate

Jun  6 13:36:45 rt-support RT: About to commit scrips for transaction #110

Jun  6 13:36:45 rt-support RT: Committing scrip #12 on txn #110 of ticket #1

Jun  6 13:36:45 rt-support RT: About to think about scrips for transaction
#111

Jun  6 13:36:45 rt-support RT: About to prepare scrips for transaction #111

Jun  6 13:36:45 rt-support RT: Found 1 scrips for TransactionCreate stage
with applicable type(s) CustomField

Jun  6 13:36:45 rt-support RT: About to commit scrips for transaction #111

Jun  6 13:36:45 rt-support RT: Found 0 scrips for TransactionBatch stage
with applicable type(s) Give,CustomField

 

How can I make it works without this issue ?

Thanks.

___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sa...@bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com