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

Reply via email to