[Rt-devel] UserDefined scrip action

Jan Okrouhly okrouhly at civ.zcu.cz
Thu Dec 9 10:10:25 EST 2004


Hello,

we use RT 3.2.2 and meet big troubles with custom action scrips - it works
only sometimes (maybe just only once). This example for is i.e. not
working well if used in Scrip for specific Queue.
Is this approach wrong/where is the problem?
I (customer) doesn't want to use additional files like yours good one
Action/NotifyGroup.pm, because the LoadedGroup will change depending on
some ticket info (Customer CustomFields)...

Prepare part:
----- cut here -----
package RT::Action::tmp;
use strict;
use vars qw/@ISA/;
require RT::Action::Notify;
@ISA = qw(RT::Action::Notify);
sub SetRecipients {
    my $self = shift;

    my ($group);
    my @Bcc;

    $group = new RT::Group($RT::SystemUser);
    $group->LoadUserDefinedGroup("RT AdminCc");

    unless ($group->Id ) {
        $RT::Logger->warning("Searching Group Global AdminCc failed, can't set recipients!\n");

        return;
    }

    my $members = $group->UserMembersObj();
    while (my $member = $members->Next()) {

        my $user = $member->EmailAddress;
        if ($user && ! ( grep (/^$user$/, @Bcc) ) ) {
                push ( @Bcc, $user );
        }
    }

    if ($RT::UseFriendlyToLine) {
            push (
                @{$self->{'PseudoTo'}},
                sprintf($RT::FriendlyToLineFormat, "GroupNotify", $self->TicketObj->id),
            );
    }

    if ($RT::NotifyActor) {
        # Do not send notification to the crator of the transaction
        my $creator;
        $creator = $self->TransactionObj->CreatorObj->EmailAddress() if ($self->TransactionObj);
        # override possible 'Bcc'

        @{$self->{'Bcc'}} = grep (!/^$creator$/, @Bcc);
    } else {
        @{$self->{'Bcc'}} = @Bcc;    }

    $RT::Logger->warning("GroupNotify Bcc is:".join(',',@{$self->{'Bcc'}})."\n");

    return (1)
}

1;

my $tmpscrip;
$tmpscrip = new RT::Action::tmp(
TransactionObj => $self->{'TransactionObj'},
TemplateObj => $self->{'TemplateObj'},
TicketObj => $self->{'TicketObj'},
ScripObj => $self->{'ScripObj'},
Type => $self->{'Type'},
CurrentUser => $self->CurrentUser,
);

$self->{'tmpscrip'} = $tmpscrip;

my $res=$tmpscrip->Prepare();
#use Data::Dumper;
#$RT::Logger->warning(Dumper($self->TemplateObj->MIMEObj->head));
return $res;
----- cut here -----
Commit part is only:
----- cut here -----
$self->{'tmpscrip'}->Commit;
----- cut here -----


Jan Okrouhlý

//------------------------------------\-\-\+\-\-\---okrouhly at civ.zcu.cz-\\
|Laboratory for Computer Science           |    phone: +420 377 632 837  |
|University of West Bohemia                | location: Univerzitni 22    |
|Americka 42, 306 14 Pilsen, Czech Republic|     room: UI402             |
+---------------------------------------73-!-de-OK1INC at OK0PPL.#BOH.CZE.EU+
|  Monday or Tuesday:                      |    phone: +420 224 355 263  |
 \\___________________CESNET z.s.p.o.______|_location: Zikova 4, Prague_//



More information about the Rt-devel mailing list