
############
GenericAgent
############


****
NAME
****


Kernel::System::GenericAgent - to manage the generic agent jobs


***********
DESCRIPTION
***********


All functions to manage the generic agent and the generic agent jobs.


****************
PUBLIC INTERFACE
****************


new()
=====


Don't use the constructor directly, use the ObjectManager instead:


.. code-block:: perl

     my $GenericAgentObject = $Kernel::OM->Get('Kernel::System::GenericAgent');



JobRun()
========


run a generic agent job


.. code-block:: perl

     $GenericAgentObject->JobRun(
         Job          => 'JobName',
         OnlyTicketID => 123,        # (optional) for event based Job execution
         SleepTime    => 100_000,    # (optional) sleeptime per ticket in microseconds
         UserID       => 1,
     );



JobList()
=========


returns a hash of jobs


.. code-block:: perl

     my %List = $GenericAgentObject->JobList();



JobGet()
========


returns a hash of the job data


.. code-block:: perl

     my %Job = $GenericAgentObject->JobGet(Name => 'JobName');



JobAdd()
========


adds a new job to the database


.. code-block:: perl

     $GenericAgentObject->JobAdd(
         Name => 'JobName',
         Data => {
             Queue => 'SomeQueue',
             # ...
             Valid => 1,
         },
         UserID => 123,
     );



JobDelete()
===========


deletes a job from the database


.. code-block:: perl

     my $Success = $GenericAgentObject->JobDelete(
         Name   => 'JobName',
         UserID => 123,
     );


returns:


.. code-block:: perl

     $Success = 1;       # or false in case of a failure



JobEventList()
==============


returns a hash of events for each job


.. code-block:: perl

     my %List = $GenericAgentObject->JobEventList();



_JobRunTicket()
===============


run a generic agent job on a ticket


.. code-block:: perl

     $GenericAgentObject->_JobRunTicket(
         TicketID     => 123,
         TicketNumber => '2004081400001',
         Config       => {
             %Job,
         },
         UserID       => 1,
     );





