Kernel::System::ProcessManagement::Process

NAME

Kernel::System::ProcessManagement::Process – process lib

DESCRIPTION

All ProcessManagement Process functions.

PUBLIC INTERFACE

new()

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

    my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::Process');

ProcessGet()

    Get process info

    my $Process = $ProcessObject->ProcessGet(
        ProcessEntityID => 'P1',
    );

    Returns:

    $Process = {
        'Name' => 'Process1',
        'CreateBy'            => '1',
        'CreateTime'          => '16-02-2012 13:37:00',
        'ChangeBy'            => '1',
        'ChangeTime'          => '17-02-2012 13:37:00',
        'State'               => 'Active',
        'StartActivityDialog' => 'AD1',
        'StartActivity'       => 'A1',
        'Path' => {
            'A2' => {
                'T3' => {
                    ActivityEntityID => 'A4',
                },
            },
            'A1' => {
                'T1' => {
                    ActivityEntityID => 'A2',
                },
                'T2' => {
                    ActivityEntityID => 'A3',
                },
            },
        },
    };

ProcessList()

    Get a list of all Processes

    my $ProcessList = $ProcessObject->ProcessList(
        ProcessState => ['Active'],           # Active, FadeAway, Inactive
        Interface    => ['AgentInterface'],   # optional, ['AgentInterface'] or ['ExternalInterface'] or ['AgentInterface', 'ExternalInterface'] or 'all'
        Silent       => 1                     # optional, 1 || 0, default 0, if set to 1 does not log errors if there are no processes configured
    );

    Returns:

    $ProcessList = {
        'P1' => 'Process 1',
        'P2' => 'Process 2',
        'P3' => '',
    };

ProcessStartpointGet()

    Get process startpoint

    my $Start = $ProcessObject->ProcessStartpointGet(
        ProcessEntityID => 'P1',
    );

    Returns:

    $Start = {
        Activity        => 'A1',
        ActivityDialog  => 'AD1',
    };

ProcessSequenceFlow()

    Check valid SequenceFlows and Change Ticket's Activity
    if a SequenceFlow was positively checked

    my $ProcessSequenceFlow = $ProcessObject->ProcessSequenceFlow(
        ProcessEntityID  => 'P1',
        ActivityEntityID => 'A1',
        TicketID         => 123,
        UserID           => 123,
        CheckOnly        => 1,             # optional
        Data             => {              # optional
            Queue         => 'Raw',
            DynamicField1 => 'Value',
            Subject       => 'Testsubject',
            #...
        },
    );

    Returns:
    $Success = 1; # undef # if "CheckOnly" is NOT set
    1 if SequenceFlow was executed and Ticket->ActivityEntityID updated
    undef if no SequenceFlow matched or check failed otherwise

    $ProcessSequenceFlow = {  # if option "CheckOnly" is set
        'T1' => {
            ActivityEntityID => 'A1',
            SequenceFlowAction => [
                'SFA1',
                'SFA2',
                'SFA3',
            ],
        },
    };

ProcessTicketActivitySet()

    Set Ticket's ActivityEntityID

    my $Success = $ProcessObject->ProcessTicketActivitySet(
        ProcessEntityID  => 'P1',
        ActivityEntityID => 'A1',
        TicketID         => 123,
        UserID           => 123,
    );

    Returns:
    $Success = 1; # undef
    1 if setting the Activity was executed
    undef if setting failed

ProcessTicketProcessSet()

    Set Ticket's ProcessEntityID

    my $Success = $ProcessObject->ProcessTicketProcessSet(
        ProcessEntityID => 'P1',
        TicketID        => 123,
        UserID          => 123,
    );

    Returns:
    $Success = 1; # undef
    1 if setting the Activity was executed
    undef if setting failed

_ProcessSequenceFlowActions()

    Check for sequence flow actions and run them.

    my $Success = $ProcessObject->_ProcessSequenceFlowActions(
        SequenceFlowConfig   => {...},
        SequenceFlowEntityID => 'SF1',
        ProcessEntityID    => 'P1',
        ActivityEntityID   => 'A1',
        TicketID           => 1,
        UserID             => 1,
    );

_ProcessNonUserActivity()

    Create a scheduler task to run a non-user activity.

    my $Success = $ProcessObject->_ProcessNonUserActivity(
        UserID           => 1,
        Ticket           => {...},
        ProcessEntityID  => 'P1',
        ActivityEntityID => 'A1',
        Activity         => {...},
    );
Scroll to Top