Hello Stefan,
indeed, I considered this method but didn't know how to bypass OTRS authentication. We use standard otrs database authentication.
Please let me know if you have any hack or idea.
Thanks
Marco
Hallo Marco,
I know this is maybe a bit overdone, but why not simply download your quoted URL
via e.g. lynx (Linux/UNIX) or wget (Windows) ? I use this technique for some workarounds
of this kind. As you did not state how you authenticate to the server, I do not know
whether this will work out for you, but it is worth a try.
Best regards
Stefan
-------- Original Message --------
Subject: [dev] Call a GenericAgent-Job from within another Perl-Script (06-Feb-2007 18:44)
From: Marco Friebe
Hello,
I want to call a GenericAgent-Job from within another Perl-Script. I want do do some work in the otrs database (Oracle) and then call that Agent-Job subsequently.
Like it is done for manual job invocation using URL "http://localhost/otrs/ index.pl?Action=AdminGenericAgent&Subaction=RunNow&Profile=Test" but called from commandline (Cron).
Since I'm a very novize regarding Perl I would be grateful if someone could point me in the right direction. Maybe this problem has already been solved.
Snip*****
use Kernel::Modules::AdminGenericAgent; (presupposed I'm in /opt/otrs)
%ParamList = ("Subaction" => "RunNow", "Profile" => "Test"); Kernel::Modules::AdminGenericAgent::Run(%ParamList);
Snap*****
I saw there is a constructor which needs to be called at first, but no idea how to do this correctly.
And here an extract of AdminGenericAgent.pm
Snip*****
sub new { my $Type = shift; my %Param = @_;
# allocate new hash for object my $Self = {}; bless ($Self, $Type);
foreach (keys %Param) { $Self->{$_} = $Param{$_}; }
# check needed Opjects foreach (qw(ParamObject DBObject TicketObject LayoutObject LogObject ConfigObject)) { if (!$Self->{$_}) { $Self->{LayoutObject}->FatalError(Message => "Got no $_!"); } }
$Self->{PriorityObject} = Kernel::System::Priority->new(%Param); $Self->{StateObject} = Kernel::System::State->new(%Param); $Self->{LockObject} = Kernel::System::Lock->new(%Param); $Self->{GenericAgentObject} = Kernel::System::GenericAgent->new(%Param);
return $Self; } # -- sub Run { my $Self = shift; my %Param = @_; my $Output; # get confid data $Self->{StartHit} = $Self->{ParamObject}->GetParam(Param => 'StartHit') || 1; $Self->{SearchLimit} = $Self->{ConfigObject}->Get('SearchLimit') || 500;
$Self->{SortBy} = $Self->{ParamObject}->GetParam(Param => 'SortBy') || ' Age'; $Self->{Order} = $Self->{ParamObject}->GetParam(Param => 'Order') || ' Down'; $Self->{Profile} = $Self->{ParamObject}->GetParam(Param => 'Profile') || ''; $Self->{SaveProfile} = 1; $Self->{TakeLastSearch} = $Self->{ParamObject}->GetParam(Param => ' TakeLastSearch') || ''; $Self->{SelectTemplate} = $Self->{ParamObject}->GetParam(Param => ' SelectTemplate') || ''; $Self->{EraseTemplate} = $Self->{ParamObject}->GetParam(Param => ' EraseTemplate') || ''; # get db job data my %DBParam = $Self->{GenericAgentObject}->JobGet(Name => $Self->{ Profile}) if ($Self->{Profile});
# run job now if ($Self->{Subaction} eq 'RunNow' && %DBParam) { $Self->{GenericAgentObject}->JobRun( Job => $Self->{Profile}, UserID => 1, ); # redirect return $Self->{LayoutObject}->Redirect( OP => "Action=$Self->{Action}", ); }
# create new job if ($Self->{Subaction} eq 'Add' && $Self->{Profile}) { # insert new profile params $Self->{GenericAgentObject}->JobAdd( Name => $Self->{Profile}, Data => { ScheduleLastRun => '', }, ); # redirect return $Self->{LayoutObject}->Redirect( OP => "Action=$Self->{Action}&Subaction=LoadProfile&Profile=$ Self->{Profile}", ); }
Snap*****
Thanks a lot.
Greetings
Marco
_______________________________________________ OTRS mailing list: dev - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/dev To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev
_______________________________________________ OTRS mailing list: dev - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/dev To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev