Process#
NAME#
Kernel::System::ProcessManagement::DB::Process
DESCRIPTION#
Process Management DB Process backend
PUBLIC INTERFACE#
new()#
Don’t use the constructor directly, use the ObjectManager instead:
my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process');
ProcessAdd()#
add new Process
returns the id of the created process if success or undef otherwise
my $ID = $ProcessObject->ProcessAdd(
EntityID => 'P1', # mandatory, exportable unique identifier
Name => 'NameOfProcess', # mandatory
StateEntityID => 'S1',
Layout => $LayoutHashRef, # mandatory, diagram objects positions to be stored in
# YAML format
Config => $ConfigHashRef, # mandatory, process configuration to be stored in YAML
# format
UserID => 123, # mandatory
);
Returns:
$ID = 567;
ProcessDelete()#
delete a Process
returns 1 if success or undef otherwise
my $Success = $ProcessObject->ProcessDelete(
ID => 123,
UserID => 123,
);
ProcessGet()#
get Process attributes
my $Process = $ProcessObject->ProcessGet(
ID => 123, # ID or EntityID is needed
EntityID => 'P1',
ActivityNames => 1, # default 0, 1 || 0, if 0 returns an Activities array
# with the activity entity IDs, if 1 returns an
# Activities hash with the activity entity IDs as
# keys and Activity Names as values
TransitionNames => 1, # default 0, 1 || 0, if 0 returns an Transitions array
# with the transition entity IDs, if 1 returns an
# Transitions hash with the transition entity IDs as
# keys and Transition Names as values
TransitionActionNames => 1, # default 0, 1 || 0, if 0 returns an TransitionActions array
# with the TransitionAction entity IDs, if 1 returns an
# TransitionAction hash with the TransitionAction entity IDs as
# keys and TransitionAction Names as values
UserID => 123, # mandatory
);
Returns:
$Process = {
ID => 123,
EntityID => 'P1',
Name => 'some name',
StateEntityID => 'S1',
State => 'Active',
Layout => $LayoutHashRef,
Config => $ConfigHashRef,
Activities => ['A1','A2','A3'],
Activities => ['T1','T2','T3'],
CreateTime => '2012-07-04 15:08:00',
ChangeTime => '2012-07-04 15:08:00',
};
$Process = {
ID => 123,
EntityID => 'P1',
Name => 'some name',
StateEntityID => 'S1',
State => 'Active',
Layout => $LayoutHashRef,
Config => $ConfigHashRef,
Activities => {
'A1' => 'Activity1',
'A2' => 'Activity2',
'A3' => 'Activity3',
};
Transitions => {
'T1' => 'Transition1',
'T2' => 'Transition2',
'T3' => 'Transition3',
};
TransitionActions => {
'TA1' => 'TransitionAction1',
'TA2' => 'TransitionAction2',
'TA3' => 'TransitionAction3',
};
CreateTime => '2012-07-04 15:08:00',
ChangeTime => '2012-07-04 15:08:00',
};
ProcessUpdate()#
update Process attributes
returns 1 if success or undef otherwise
my $Success = $ProcessObject->ProcessUpdate(
ID => 123, # mandatory
EntityID => 'P1', # mandatory, exportable unique identifier
Name => 'NameOfProcess', # mandatory
StateentityID => 'S1',
Layout => $LayoutHashRef, # mandatory, diagram objects positions to be stored in
# YAML format
Config => $ConfigHashRef, # mandatory, process configuration to be stored in YAML
# format
UserID => 123, # mandatory
);
ProcessList()#
get a Process list
my $List = $ProcessObject->ProcessList(
UseEntities => 0, # default 0, 1 || 0. if 0 the return hash keys are
# the process IDs otherwise keys are the
# process entity IDs
StateEntityIDs => ['S1','S2'], # optional, to filter processes that match listed
# state entity IDs
UserID => 1,
);
Returns:
$List = {
1 => 'NameOfProcess',
}
or
$List = {
'P1' => 'NameOfProcess',
}
ProcessListGet()#
get a Process list with all process details
my $List = $ProcessObject->ProcessListGet(
UserID => 1,
);
Returns:
$List = [
{
ID => 123,
EntityID => 'P1',
Name => 'some name',
StateEntityID => 'S1',
State => 'Active',
Layout => $LayoutHashRef,
Config => $ConfigHashRef,
Activities => ['A1','A2','A3'],
CreateTime => '2012-07-04 15:08:00',
ChangeTime => '2012-07-04 15:08:00',
},
{
ID => 456,
EntityID => 'P2',
Name => 'some name',
StateEntityID => 'S1',
State => 'Active',
Layout => $LayoutHashRef,
Config => $ConfigHashRef,
Activities => ['A3','A4','A5'],
CreateTime => '2012-07-04 15:10:00',
ChangeTime => '2012-07-04 15:10:00',
},
];
ProcessSearch()#
search processes by process name
my $ProcessEntityIDs = $ProcessObject->ProcessSearch(
ProcessName => 'SomeText', # e. g. "SomeText*", "Some*ext" or ['*SomeTest1*', '*SomeTest2*']
);
Returns:
$ProcessEntityIDs = [ 'Process-e11e2e9aa83344a235279d4f6babc6ec', 'Process-f8194a25ab0ccddefeb4240c281c1f56' ];
ProcessDump()#
gets a complete processes information dump from the DB including: Process State, Activities, ActivityDialogs, Transitions and TransitionActions
my $ProcessDump = $ProcessObject->ProcessDump(
ResultType => 'SCALAR' # 'SCALAR' || 'HASH' || 'FILE'
Location => '/opt/znuny/var/myfile.txt' # mandatory for ResultType = 'FILE'
UserID => 1,
);
Returns:
$ProcessDump = '
$Self->{'Process'} = {
'P1' => {
'Name' => 'Process 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'Path' => {
'A1' => {
'T1' => {
'Action' => [
'TA1',
],
}
},
'StartActivity' => 'A1',
'StartActivityDialog' => 'AD1',
'State' => 'S1'
},
# ...
};
$Self->{'Process::State'} = {
'S1' => 'Active',
'S2' => 'Inactive',
'S3' => 'FadeAway'
};
$Self->{'Process::Activity'} = {
'A1' => {
'Name' => 'Activity 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'ActivityDialog' => {
'1' => 'AD1',
}
},
# ...
};
$Self->{'Process::ActivityDialog'} = {
'AD1' => {
'Name' => 'Activity Dialog 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'FieldOrder' => [
'StateID',
'DynamicField_Marke',
],
'Fields' => {
'StateID' => {
'DefaultValue' => '1',
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'Display' => '0'
},
'DynamicField_Marke' => {
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'Display' => '2'
},
},
#...
};
$Self->{'Process::Transition'} = {
'T1' => {
'Name' => 'Transition 1',
'ChangeTime' => '2012-07-21 08:11:33',
'CreateTime' => '2012-07-21 08:11:33',
'Condition' => {
'Type' => 'and',
'Cond1' => {
'Fields' => {
'DynamicField_Marke' => {
'Match' => 'Teststring',
'Type' => 'String',
},
},
'Type' => 'and',
},
},
},
# ...
};
$Self->{'Process::Action'} = {
'TA1' => {
'Name' => 'Queue Move',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'Module' => 'Kernel::System::Process::Transition::Action::QueueMove',
'Config' => {
'NewOwner' => 'root@localhost',
'TargetQueue' => 'Raw',
},
},
# ...
};
';
my $ProcessDump = $ProcessObject->ProcessDump(
ResultType => 'HASH' # 'SCALAR' || 'HASH' || 'FILE'
Location => '/opt/znuny/var/myfile.txt' # mandatory for ResultType = 'FILE'
UserID => 1,
);
Returns:
$ProcessDump = {
Process => {
'P1' => {
'Name' => 'Process 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'Path' => {
'A1' => {
'T1' => {
'Action' => [
'TA1',
],
}
},
'StartActivity' => 'A1',
'StartActivityDialog' => 'AD1',
'State' => 'S1'
},
},
# ...
};
State => {
'S1' => 'Active',
'S2' => 'Inactive',
'S3' => 'FadeAway'
};
Activity => {
'A1' => {
'Name' => 'Activity 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'ActivityDialog' => {
'1' => 'AD1',
}
},
# ...
};
ActivityDialog => {
'AD1' => {
'Name' => 'Activity Dialog 1',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'FieldOrder' => [
'StateID',
'DynamicField_Marke',
],
'Fields' => {
'StateID' => {
'DefaultValue' => '1',
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'Display' => '0'
},
'DynamicField_Marke' => {
'DescriptionLong' => 'Longer description',
'DescriptionShort' => 'Short description',
'Display' => '2'
},
},
},
#...
};
Transition => {
'T1' => {
'Name' => 'Transition 1',
'ChangeTime' => '2012-07-21 08:11:33',
'CreateTime' => '2012-07-21 08:11:33',
'Condition' => {
'Type' => 'and',
'Cond1' => {
'Fields' => {
'DynamicField_Marke' => {
'Match' => 'Teststring',
'Type' => 'String',
},
},
'Type' => 'and',
},
},
},
# ...
};
TransitionAction => {
'TA1' => {
'Name' => 'Queue Move',
'CreateTime' => '2012-07-21 08:11:33',
'ChangeTime' => '2012-07-21 08:11:33',
'Module' => 'Kernel::System::Process::Transition::Action::QueueMove',
'Config' => {
'NewOwner' => 'root@localhost',
'TargetQueue' => 'Raw',
},
},
# ...
};
}
my $ProcessDump = $ProcessObject->ProcessDump(
ResultType => 'Location' # 'SCALAR' || 'HASH' || 'FILE'
Location => '/opt/znuny/var/myfile.txt' # mandatory for ResultType = 'FILE'
UserID => 1,
);
- Returns:
$ProcessDump = ‘/opt/znuny/var/myfile.txt’; # or undef if can’t write the file
ProcessImport()#
import a process YAML file/content
my %ProcessImport = $ProcessObject->ProcessImport(
Content => $YAMLContent, # mandatory, YAML format
OverwriteExistingEntities => 0, # 0 || 1
UserID => 1, # mandatory
);
Returns:
%ProcessImport = (
Message => 'The Message to show.', # error or success message
Comment => 'Any comment', # optional
Success => 1, # 1 if success or undef otherwise
);