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 => {...},
);