Hi Marco, the authentification is really a problem if you want to call the URL. I have no solution for that.
I think your GenericAgent-job is written within the GUI, so saved within the DB - that's the problem! If you wrote the job as shell-GenericAgent-job (see Kernel/Config/GenericAgent.pm.example), you can easily run this command from cmd-shell and thus also within a perl-script. I also think that you have more functionality with shell-jobs than with DB-jobs. Also have a look at http://dev.otrs.org/2.1/Kernel/System/GenericAgent.html to see how GenericAgent-jobs can be run within the OTRS-API. I think this could be the best solution, but you'll need to understand OTRS-internas. Bye, Alex Marco Friebe schrieb: > 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 <[EMAIL PROTECTED]> > To: stefan > >> 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 > > > _______________________________________________ > 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
