Kernel::System::ProcessManagement::DB::Process
Process Management DB Process backend
Don't use the constructor directly, use the ObjectManager instead:
my $ProcessObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::DB::Process');
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;
delete a Process
returns 1 if success or undef otherwise
my $Success = $ProcessObject->ProcessDelete( ID => 123, UserID => 123, );
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', };
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 );
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', }
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', }, ];
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' ];
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/otrs/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/otrs/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/otrs/var/myfile.txt' # mandatory for ResultType = 'FILE' UserID => 1, );
Returns: $ProcessDump = '/opt/otrs/var/myfile.txt'; # or undef if can't write the file
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 );
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.