[rt-users] Scrip help needed

Brumm, Torsten / Kuehne + Nagel / Ham MI-ID torsten.brumm at Kuehne-Nagel.com
Thu Sep 24 09:52:22 EDT 2009


Hi Ruslan,

thanks for the hint. tried it with this piece of code:

my $Clone = $self->TicketObj;
my $note;
my $t = $self->TicketObj->Transactions;
	$t->Limit( FIELD => 'Type', VALUE => 'Correspond' );
	$t->OrderByCols (
		{ FIELD => 'Created',  ORDER => 'DESC' },
		{ FIELD => 'id',     ORDER => 'DESC' },
        );
my $CommentObj = $t->First;
if( $CommentObj && $CommentObj->id ) {
	$note = $CommentObj->Content;
};
my $Actor = $self->TransactionObj->Creator;

while (my $related = $Clone->ReferredToBy->Next) {
		my $original = $Clone->id;
		my $relid = $related->BaseObj->id;
		my $reply_will_be_on = RT::Ticket->new( $Actor ); 
		$reply_will_be_on->Load( $related->BaseObj->id ); 
		$reply_will_be_on->Comment( Content => $self->loc( "Information added by [_1].", # loc
								$Actor,
								) . "\n" . $self->loc( "Notes: [_1]", # loc
								$note
								),
							);
}
return 1; 


this ends up with:

[Thu Sep 24 13:47:26 2009] [error]: Scrip 1159 Commit failed: Can't call method "UserObj" on an undefined value at /opt/rt3/lib/RT/Ticket_Overlay.pm line 3647.

OK, line 3647 from Ticket_Overlay:

$self->HasRight(
       Principal => $self->CurrentUser->UserObj(),
       Right     => "$right"
       )
);


OK, i'm working as superuser, so i should have the right....digging in the dark :-(


-----Ursprüngliche Nachricht-----
Von: Ruslan Zakirov [mailto:ruslan.zakirov at gmail.com] 
Gesendet: Donnerstag, 24. September 2009 15:23
An: Brumm, Torsten / Kuehne + Nagel / Ham MI-ID
Cc: Raed El-Hames; rt-users at lists.bestpractical.com
Betreff: Re: [rt-users] Scrip help needed

Torsten,

Scrips work under system user, but you have to reload ticket as creator of the transaction. Something like:
...
my $reply_will_be_on = RT::Ticket->new( $txn->CreatorObj ); $reply_will_be_on->Load( $ticket_you_found_as_system_user->id ); $reply_will_be_on->Comment(...); ...

On Thu, Sep 24, 2009 at 2:39 PM, Brumm, Torsten / Kuehne + Nagel / Ham MI-ID <torsten.brumm at kuehne-nagel.com> wrote:
> Hi Roy,
> no success, still:       RT_System - Comments added
>
> :-(
>
> Thanks
>
> Torsten
>
>
> Kuehne + Nagel (AG & Co.) KG, Geschaeftsleitung: Hans-Georg Brinkmann 
> (Vors.), Dirk Blesius (Stellv.), Reiner Heiken (Stellv.), Bruno Mang, 
> Alfred Manke, Christian Marnetté (Stellv.), Mark Reinhardt (Stellv.), 
> Jens Wollesen, Rainer Wunn, Sitz: Bremen, Registergericht: Bremen, HRA 
> 21928, USt-IdNr.: DE 812773878, Persoenlich haftende Gesellschaft: 
> Kuehne & Nagel A.G., Sitz: Contern/Luxemburg Geschaeftsfuehrender 
> Verwaltungsrat: Klaus-Michael Kuehne
>
>
>
> -----Urspruengliche Nachricht-----
> Von: Raed El-Hames [mailto:rfh at vialtus.com]
> Gesendet: Donnerstag, 24. September 2009 11:59
> An: Brumm, Torsten / Kuehne + Nagel / Ham MI-ID
> Cc: rt-users at lists.bestpractical.com
> Betreff: Re: [rt-users] Scrip help needed
>
> Hi Torsten;
>
> Try
>
> $related->BaseObj->Comment(
>    Creator => $self->TransactionObj->Creator,
>    Content => $self->loc( "Information added by [_1].", # loc
>       $self->TransactionObj->CreatorObj->Name,
>       ) . "\n" . $self->loc( "Notes: [_1]", # loc
>       $note
>       ),
>     );
>
>
> Note the Creator line I added.
>
> Regards;
> Roy
>
> Brumm, Torsten / Kuehne + Nagel / Ham MI-ID wrote:
>> Hi,
>> i'm trying to write a scrip which does the following:
>>
>> We have two or more tickets, each ticket has a refersto to another 
>> like this:
>>
>> #1 -> refers to #2
>>
>> Now, if someone at ticket #2 writes an update, this update (reply in 
>> our case) should be posted also to ticket #1
>>
>> Till this point it is working fine, now my problem:
>>
>> The Update on Ticket #1 is done by RT_System (from the scrip) after 
>> the user in ticket #2 writes an update and i have no idea at the 
>> moment, how can i do the update as the user, doing the reply on 
>> ticket
>> #2 ?!?
>>
>> The Part of the source writing back the update:
>>
>> $related->BaseObj->Comment(
>>     Content => $self->loc( "Information added by [_1].", # loc
>>        $self->TransactionObj->CreatorObj->Name,
>>        ) . "\n" . $self->loc( "Notes: [_1]", # loc
>>        $note
>>        ),
>>      );
>> I'm not sure how can i add the actual actor from Ticket #2 inside 
>> this part of code?!?
>>
>> Below is my full source till now:
>>
>> my $Clone = $self->TicketObj;
>> my $note;
>> my $t = $self->TicketObj->Transactions;  $t->Limit( FIELD => 'Type', 
>> VALUE => 'Correspond' );  $t->OrderByCols (
>>   { FIELD => 'Created',  ORDER => 'DESC' },
>>   { FIELD => 'id',     ORDER => 'DESC' },
>>         );
>> my $CommentObj = $t->First;
>> if( $CommentObj && $CommentObj->id ) {  $note = $CommentObj->Content; 
>> }; # Get the actual Actor of this transaction my $Actor = 
>> $self->TransactionObj->Creator; # $Actor has the ID of the actual 
>> Transaction my $temp_user = RT::User->new(); 
>> $temp_user->Load($Actor); my $AName = $temp_user->Name(); # Name of 
>> Actor in acutal Transaction
>> - possibly not needed
>>
>> while (my $related = $Clone->ReferredToBy->Next) {
>>   my $original = $Clone->id;
>>   my $relid = $related->BaseObj->id;
>>   $related->BaseObj->Comment(
>>     Content => $self->loc( "Information added by [_1].", # loc
>>        $self->TransactionObj->CreatorObj->Name,
>>        ) . "\n" . $self->loc( "Notes: [_1]", # loc
>>        $note
>>        ),
>>      );
>> }
>> return 1;
>>
>> Any help is appriciated.
>>
>> Torsten
>>
>> Kuehne + Nagel (AG & Co.) KG, Geschaeftsleitung: Hans-Georg Brinkmann 
>> (Vors.), Dirk Blesius (Stellv.), Reiner Heiken (Stellv.), Bruno Mang, 
>> Alfred Manke, Christian Marnetté (Stellv.), Mark Reinhardt (Stellv.), 
>> Jens Wollesen, Rainer Wunn, Sitz: Bremen, Registergericht: Bremen, 
>> HRA 21928, USt-IdNr.: DE 812773878, Persoenlich haftende Gesellschaft:
>> Kuehne & Nagel A.G., Sitz: Contern/Luxemburg, Geschaeftsfuehrender
>> Verwaltungsrat: Klaus-Michael Kuehne
>>
>>
>
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com Commercial support: 
> sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
> Buy a copy at http://rtbook.bestpractical.com
>



--
Best regards, Ruslan.


More information about the rt-users mailing list